web-dev-qa-db-ja.com

protobufに1バイト型はありますか?

Protoにchar/byte型を含めることができるかどうかがわかりません。

私はここでさまざまなタイプを見ることができます:

しかし、バイト型やint16型さえも見つかりません。

17
cnd

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

倍数の場合、8ビットバージョンには「バイト」があり、残りには「パック」があります。これにより、値ごとのフィールドヘッダーのコストが回避されます。

22
Marc Gravell