我有两个二进制字节,如下所示:
第一个字节:1001010
第二个字节:1111010
BitConverter.ToUint16(new byte[2] { 0b1001010, 0b1111010 })
我希望收到11110101001010
,但我收到了11110100
(←另一个零出现了)1001010
为什么最终结果与预期不同?
我有两个二进制字节,如下所示:
第一个字节:1001010
第二个字节:1111010
BitConverter.ToUint16(new byte[2] { 0b1001010, 0b1111010 })
我希望收到11110101001010
,但我收到了11110100
(←另一个零出现了)1001010
为什么最终结果与预期不同?
你误读了结果。1 字节 = 8 位,由于某种原因,右边有 7 个。
应该是这样的。右边有 8 位,左边有 8 加零,一共是 16。
我还要说它
BitConverter
不再与使用它相关,因为它的工作结果是不可预测的,从某种意义上说,它取决于处理器架构。建议改用BinaryPrimitives。