我正在尝试解码本规范here中描述的游程编码。 它说:
每个计数可能有1,2,3或4个字节。第一个计数字节的前两位包含0,1,2,3,表示计数包含在1,2,3或4个字节中。然后字节的其余部分(6位)代表计数的六个最重要的字节。下一个字节(如果存在)表示递减显着性
我已成功读取前2位的长度,但无法弄清楚如何在接下来的14位中获取编码值。
继承人我的得分如何:
number_of_bytes = (firstbyte >> 6) + 1
它接收数据是大端。我尝试过使用不同的字符串进行位移和拆包以及重新打包,因为我无法获得预期的数字。
答案 0 :(得分:3)
要获得6个最低有效位,请使用
firstbyte & 0b111111
所以得到14位值
((firstbyte & 0b111111) << 8) + secondbyte