0

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

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

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

这是我得到长度的方法:

number_of_bytes = (firstbyte >> 6) + 1

似乎数据是大端的。我已经尝试使用不同的字节顺序进行移位、解包和重新打包,但我无法得到我期望的数字。

4

1 回答 1

3

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

firstbyte & 0b111111

所以要得到一个 14 位的值

((firstbyte & 0b111111) << 8) + secondbyte
于 2013-06-12T06:49:57.903 回答