Varint
Varint(可変長整数)は、Protobufなどのプロトコルで使われる可変長整数符号化である。各バイトは下位7ビットにペイロードを格納し、最上位ビットが継続フラグになる。
目的
シリアライズプロトコルで整数をコンパクトに表現する。小さい整数はわずかなスペースで済み、大きい整数は自動的に拡張される。
メカニズム
符号なし整数を7ビットずつのグループに分割し、最下位から最上位の順に出力する。バイトのMSBが1なら後続のバイトがあり、0なら終端である。符号付き整数はまずZigZagで符号なしに変換される。
ユースケース
- Protobufのフィールド符号化
- 可変長のデータベース列
- コンパクトなバイナリプロトコル