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