比特流阅读顺序

时间:2011-04-08 12:31:13

标签: java java-io

我已阅读手册:

  

对于面向比特的传送,位   字节流格式的顺序是   指定以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 个答案:

答案 0 :(得分:2)

  • MSB:最重要的位
  • LSB:最不重要的位

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

答案 1 :(得分:1)

在Java中,读取和写入字节流的默认方法将自动默认为网络字节顺序,因此您可能不错。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

字节顺序主要称为字节顺序。你有big-endian系统和little-endian系统。

Big endian你首先拥有最高位,而在Little Endian中,最重要的位是第一位。

大多数网络流量都是大端。 X86机器总是小端的。

Here是关于endian-ness的更多信息