Saltar al contenido
uencoder

ZigZag Encode

La codificación ZigZag mapea un entero con signo a uno sin signo (0→0, -1→1, 1→2, -2→3, ...), y se combina con Varint para una codificación compacta.

Propósito

Hace que los números negativos pequeños sean tan compactos como los positivos pequeños bajo codificación de longitud variable.

Mecanismo

La fórmula: n ≥ 0 → 2n, y n < 0 → 2|n| - 1. En operaciones de bits: (n << 1) ^ (n >> 31).

Casos de uso

  • Codificación sint de Protobuf
  • Serialización compacta con signo

Herramientas relacionadas

References