我需要读取使用BinaryWriter类编写的自定义序列化二进制数据。
为了存储日期,原始设计师使用BinaryWriter.Write( Data.ToBinary() );
This文章排序中提到了ToBinary函数如何工作;但是我需要的是构建将模拟其他编程语言中的ToBinary()和FromBinary()方法的代码。
任何人都可以看看下面的伪代码,并让我对实际偏移位计数有所了解。
long i = DateTime.Now.ToBinary();
// will likely need to add code here to "condition" the value
int yr = (i >> 48) & 0x7fff;
int mo = (i >> 44) & 0xf;
int day = (i >> 36) & 0xff;
int hr = (i >> 28) & 0xff;
int min = (i >> 20) & 0xff;
int sec = (i >> 12) & 0xff;
int ms = i & 0xfff;
ps。这个概念甚至会起作用吗?还是以总毫秒数的形式存储日期?
最佳答案
您可以使用任何想要的格式,只要同时进行序列化和反序列化即可:)但是,由于常见的表示法是“ Ticks”,为什么不这样做呢?
序列化是关于保存和还原的,只要您可以恢复保存的任何内容,序列化就可以了:)
关于.net - 从.net Data.ToBinary()中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5585588/