コンテンツへスキップ
uencoder

ZigZag Encode

ZigZagエンコーディングは符号付き整数を符号なし整数へ写像し(0→0、-1→1、1→2、-2→3…)、Varintと組み合わせてコンパクトな符号化を実現する。

目的

可変長符号化の下で、小さな負の数を小さな正の数と同じくらいコンパクトにする。

メカニズム

式は n ≥ 0 → 2n、n < 0 → 2|n| - 1 である。ビット演算では (n << 1) ^ (n >> 31) となる。

ユースケース

  • Protobufのsintエンコーディング
  • コンパクトな符号付きシリアライズ

関連ツール

References