2

我在手册中阅读过:

对于面向比特的传输,字节流格式的比特顺序被指定为从第一个字节的 MSB 开始,到第一个字节的 LSB,然后是第二个字节的 MSB,以此类推。

在我的应用程序中,我必须处理位。(例如,我有十进制数 5,二进制格式看起来像 00000101)所以,这是否意味着(根据手册)我读取的位顺序是

<= 0 <= 0 <= 0 <= 0 <= 0 <= 1 <= 0 <= 1 (first read bit I read is 0, second is 0 etc....)

或者它意味着这样的读取位顺序:

<= 1 <= 0 <= 1 <= 0 <= 0 <= 0 <= 0 <= 0 (first read bit I read is 1, second is 0 etc....)

谢谢

4

4 回答 4

2
  • MSB:最高有效位
  • LSB:最低有效位

因此,对于 5 (0000_0101),左边的位(代表 2 7)是“最重要的”,右边的位(代表 2 0)是“最不重要的”。因此,是的,期望 0 是第一位。

于 2011-04-08T12:36:33.100 回答
1

在 Java 中,读取和写入字节流的默认方法将自动默认为网络字节顺序,所以你可能很高兴。

于 2011-04-08T12:33:54.447 回答
1

如果您的流中的第一个字节是0x7D,0x01,则比特流开始0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1

于 2011-04-08T12:35:32.750 回答
1

字节顺序主要被称为字节序。你有大端系统和小端系统。

Big endian 你首先有最高有效位,而在 Little Endian 中,最低有效位在前。

大多数网络流量都是大端的。X86 机器始终是 little-endian。

是有关字节序的更多信息

于 2011-04-08T12:37:54.500 回答