0

我有一个正在读取两个字节的文件。(03, 0E)。我使用二进制阅读器来获取我的字节

 reader.ReadBytes( 2 ), 0 )//[0] = 03  and [1] = 0E

然后我转换为

 BitConverter.ToInt16( reader.ReadBytes( 2 ), 0 )

转换的小端设置为true,所以如果我错了,请纠正我,但这意味着0x03然后0x0E,我的结果应该是十进制的782,但它显示为3587。我检查了即时窗口及其正在交换的转换器。我当然在这里遗漏了一些东西,但我不知道是什么?

4

1 回答 1

3

你倒过来了。从文档中

“Big-endian”意味着最高有效字节位于单词的左端。“Little-endian”意味着最高有效字节位于单词的右端。

因此{03},{0E},在 little-endian 系统中读取意味着这0E最重要的字节,因此当读取到 2 字节结构时,它0E03以十六进制表示,或以十进制表示 3,587。

于 2013-05-06T14:04:19.163 回答