2016-03-24 6 views

答えて

1

はい...っぽい、予測可能なサイズ固定でなければならないこと。ペイロードは固定サイズであり、ヘッダは可変長符号化されている。それは理論ではちょうど継続ビットセットでゼロパディングの9つの余分なバイトまで含めることができます - ここわずか落とし穴がvarint仕様は、実際に次善のエンコーディングを禁止していないということであります。しかし、実際は、これは問題ではありません。

そこでこれらはvarintとして解釈同じデータである(値:1):

期待:

00000001 

準最適:

10000001 10000000 10000000 10000000 00000000 

非常次善:

10000001 10000000 10000000 10000000 10000000 10000000 10000000 10000000 10000000 00000000 

(MSBの各バイトは継続フラグです。他の7ビットは、最初最下位グループと、ペイロードです。唯一の64ビットが期待されているので、ここでvarintの最大サイズは10バイトである必要がありますが、任意のライブラリが明示的にこれをチェックしない場合、私は疑問に思う)実際に

:!ライブラリは、最初の形式を使用します。

関連する問題