BitConverter在应该使用小端序时使用了Big
本文关键字:Big BitConverter | 更新日期: 2023-09-27 18:12:23
我有一个文件,我正在读取两个字节。(03, 0 e)。我使用二进制读取器来获取我的字节
reader.ReadBytes( 2 ), 0 )//[0] = 03 and [1] = 0E
则转换为
BitConverter.ToInt16( reader.ReadBytes( 2 ), 0 )
转换有小端序设置为true,所以如果我错了,请纠正我,但这意味着0x03然后0x0E,我的结果应该是十进制的782,但它显示为3587。我检查了即时窗口,它的转换器正在交换。我肯定漏掉了什么,但我不知道是什么?
你搞反了。来自文档:
"Big-endian"表示最高位字节位于单词的左端。"Little-endian"表示最高位字节位于单词的右端。
因此,在小端系统中读取{03},{0E}
意味着0E
是最重要的字节,因此,当读入2字节结构时,它表示十六进制的0E03
,或十进制的3587。