gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 09:29:47 28 4
gpt4 key购买 nike

我正在尝试使用 BinaryReader 类读取二进制文件,我需要将它作为 UInt32 块读取,然后进行一些位移等后记。

但是,由于某种原因,当我使用 ReadUInt32 方法时,位顺序是相反的。

例如,如果我有一个文件,其中前四个字节在十六进制中看起来像这样 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)?

最佳答案

是的,这与您的计算机硬件在内存中存储 uint 的方式有关。尽管大多数台式计算机应该是相同的,但它在不同平台上可能有所不同。

这称为字节序 - 请参阅此处的维基百科:

http://en.wikipedia.org/wiki/Endian

关于.net - 为什么 BinaryReader.ReadUInt32() 反转位模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/899279/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com