LEB128またはLittle Endian Base 128フォーマットについて混乱しています。 AOSP
ソースコードLeb128.java
では、その読み取り関数の戻り値の型は、符号付きか符号なしかにかかわらず、int
です。私はint
のサイズがJavaで4バイト(別名32bits
)であることを知っています。しかし、AOSPのLEB128
の最大長は、という5バイトです。だからどこが失われたのか3bits
。Android LEB128タイプのサイズ
ご返信ありがとうございます。
ご返信ありがとうございます。私は余分なビットがデータの終わりを示すことを知っています。私は、LEBには、ほとんどが「7ビット* 5バイト= 35ビット」と混同していました。しかし、戻り値の型は 'int'でサイズは' 32bits 'です。 LEBが 'int'を圧縮する形式であることが分かりました。それは正しい? – litao3rd
@ litao3rd:私はあなたのコメントを本当に理解していないのですが、*ほとんど* 5バイトのデータを使用している場合、LEBは悪い選択です。ポイントは* 4バイト未満のほとんどの値を表すことです...そうでなければ、値ごとに固定された4バイトを使うこともできます。そして、はい、5バイトの値を書き込む場合、上位3ビットは0でなければなりません。 –
LEB形式では、データのために35バイトの文字がほとんどです。 LEB128は、サイズが32ビットの 'int'を格納するために使われます。だから、それは十分です。私はちょうどそのサイズについて混乱しました。おかげさまで私の英語には申し訳ありません。 – litao3rd