Aller au contenu
uencoder

ZigZag Encode

L'encodage ZigZag associe un entier signé à un entier non signé (0→0, -1→1, 1→2, -2→3, ...), et se combine avec Varint pour un codage compact.

Objectif

Rend les petits nombres négatifs aussi compacts que les petits nombres positifs en codage à longueur variable.

Mécanisme

La formule : n ≥ 0 → 2n, et n < 0 → 2|n| - 1. En opérations binaires : (n << 1) ^ (n >> 31).

Cas d’usage

  • Encodage sint de Protobuf
  • Sérialisation compacte d'entiers signés

Outils associés

References