|
0
|
| Sam Holder Brian Adams · 技术社区 · 16 年前 |
|
|
1
1
首先,位顺序是从你那里抽象出来的。除非你在玩弄东西,否则你不在乎。 字节顺序是另一回事。对于4字节的数量,它可以是最低有效字节第一个或最高有效字节第一个。我不知道readDouble()使用的是什么,但是如果您在连接的一端使用BinaryReader,在另一端使用BinaryWriter,那么再一次,您不在乎。它的书写顺序应与阅读顺序相同,而不考虑结尾。 在我看来,你唯一关心的情况是,如果你不在电线的另一端使用.NET。在这种情况下,您必须确保字节顺序正确,使用类似于您描述的方案。(array.reverse等)。 通常,面临此问题的应用程序使用多字节签名来清楚地指示顺序。换言之,在流中写入0x0102304,在读卡器端,如果得到0x04030201,就知道在结束语方面有区别。
你得解决这个问题。如果没有能力测试你正在开发的东西,你就无法开发。这也引出了一个问题:如果你没有一个使用不同结尾的源代码,那么你为什么要担心这个问题呢?
参见:
|
|
|
2
0
BinaryReader在Little Endian中读取数据(包括双精度):
如果要读取bigendian数据,可以重写binaryreader方法,或者使用枚举参数添加重载以指定预期的endianness。 要实现bing-endian阅读,您可以查看cheeso答案或执行一些反向工程。 |