BitConverter.ToUint16给出的值不正确?

时间:2016-02-23 13:36:56

标签: c# binary

我的代码用于提取4字节消息中的两个中间字节,然后附加两个中间字节以形成16位无符号整数。不幸的是我遇到了BitConverter.ToUint16的问题 - 我的代码似乎无法正常使用它。

我在下面附上了代码和相关局部变量的图像。

在此特定示例中,中心字节为十进制的“10”和“152”。在二进制中,它们是00001010和10011000.这意味着uint16(numberIn)应该是0000101010011000的十进制表示,即2712.不幸的是,程序找到的值是38922。

发生了什么事??

code & local vars

1 个答案:

答案 0 :(得分:3)

.NET使用little endianness,因此00001010 10011000为38922.(00001010b + 10011000b * 256