この仕様で説明されているランレングス エンコーディングをデコードしようとしています。それは言います:
カウントごとに 1、2、3、または 4 バイトの可能性があります。最初のカウント バイトの最初の 2 ビットには、カウントが 1、2、3、または 4 バイトに含まれていることを示す 0、1、2、3 が含まれます。次に、残りのバイト (6 ビット) は、カウントの上位 6 バイトを表します。次のバイトが存在する場合は、重要度の減少を表します
長さの最初の 2 ビットは正常に読み取れましたが、次の 14 ビットでエンコードされた値を取得する方法がわかりません。
長さを取得する方法は次のとおりです。
number_of_bytes = (firstbyte >> 6) + 1
データがビッグエンディアンであることがわかります。異なるエンディアン ビットでビット シフトとアンパックと再パックを試みましたが、期待する数値が得られません。