Zum Inhalt springen
uencoder

ZigZag Encode

Die ZigZag-Kodierung bildet eine vorzeichenbehaftete Ganzzahl auf eine vorzeichenlose ab (0→0, -1→1, 1→2, -2→3, ...) und wird mit Varint zu einer kompakten Codierung kombiniert.

Zweck

Macht kleine negative Zahlen unter variabler Längenkodierung genauso kompakt wie kleine positive.

Mechanismus

Die Formel: n ≥ 0 → 2n und n < 0 → 2|n| - 1. In Bitoperationen: (n << 1) ^ (n >> 31).

Anwendungsfälle

  • Protobuf-sint-Kodierung
  • Kompakte vorzeichenbehaftete Serialisierung

Verwandte Tools

References