我正在尝试使用 BinaryReader 类读取二进制文件,我需要将其作为 UInt32 块读取,然后进行一些位移等。
但是,由于某种原因,当我使用 ReadUInt32 方法时,位顺序颠倒了。
例如,如果我有一个文件,其中前四个字节在 hex, 中看起来像这样0x12345678
,它们在被 ReadUInt32: 读取后最终是这样的0x78563412
。
如果我使用 ReadBytes(4) 方法,我会得到预期的数组:
[0x00000000] 0x12 byte
[0x00000001] 0x34 byte
[0x00000002] 0x56 byte
[0x00000003] 0x78 byte
为什么是这样?它只是 .net 表示内存中的 uint 的方式吗?在不同平台上是否相同(我运行的是 64 位 Windows 7、.net 3.5 sp1)?