コンテンツへスキップ
uencoder

Varint

Varint(可変長整数)は、Protobufなどのプロトコルで使われる可変長整数符号化である。各バイトは下位7ビットにペイロードを格納し、最上位ビットが継続フラグになる。

目的

シリアライズプロトコルで整数をコンパクトに表現する。小さい整数はわずかなスペースで済み、大きい整数は自動的に拡張される。

メカニズム

符号なし整数を7ビットずつのグループに分割し、最下位から最上位の順に出力する。バイトのMSBが1なら後続のバイトがあり、0なら終端である。符号付き整数はまずZigZagで符号なしに変換される。

ユースケース

  • Protobufのフィールド符号化
  • 可変長のデータベース列
  • コンパクトなバイナリプロトコル

関連ツール

References