从2个字节读取14位数

时间:2013-06-12 06:46:47

标签: python bit-manipulation binaryfiles

我正在尝试解码本规范here中描述的游程编码。 它说:

  

每个计数可能有1,2,3或4个字节。第一个计数字节的前两位包含0,1,2,3,表示计数包含在1,2,3或4个字节中。然后字节的其余部分(6位)代表计数的六个最重要的字节。下一个字节(如果存在)表示递减显着性

我已成功读取前2位的长度,但无法弄清楚如何在接下来的14位中获取编码值。

继承人我的得分如何:

number_of_bytes = (firstbyte >> 6) + 1

它接收数据是大端。我尝试过使用不同的字符串进行位移和拆包以及重新打包,因为我无法获得预期的数字。

1 个答案:

答案 0 :(得分:3)

要获得6个最低有效位,请使用

firstbyte & 0b111111

所以得到14位值

((firstbyte & 0b111111) << 8) + secondbyte