2013-07-22 4 views
10

protoにchar/byte型を持つことができない場合は見つかりません。protobufに1バイトタイプはありますか?

私はここに、様々なタイプを見ることができます:https://developers.google.com/protocol-buffers/docs/encoding

+6

固定長整数型は可変長符号化を使用しているため、16ビットと8ビットの整数に 'int32 'を使用し、可変長符号化部分では使用していないバイトを送信しないようにします。 –

+0

@muistooshort IMHOあなたのコメントは回答を受け入れる必要があります。 – omikron

答えて

18

いいえ、固定1バイト型はありません。固定長には、4バイトと8バイトのバリエーションのみがあります。他のほとんどの数値は "varint"としてコード化されています。これは大きさに応じて可変長です(そして符号がありますが、 "ジグザグ"が入ります)。したがって、0〜127の値を1バイトに格納し、128〜255を2バイトで格納することができます。 16ビットの値は、大きさ(および符号/ジグザグなど)に応じて1〜3バイトをとります。

倍数の場合、8ビット版では「バイト」、それ以外では「パック」されます。これは、値ごとのフィールドヘッダーのコストを回避します。

関連する問題