相关疑难解决方法(0)

为什么BinaryReader.ReadUInt32()反转位模式?

我正在尝试使用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)?

.net 64-bit 32-bit bit-manipulation endianness

7
推荐指数
2
解决办法
3958
查看次数

标签 统计

.net ×1

32-bit ×1

64-bit ×1

bit-manipulation ×1

endianness ×1