Zum Inhalt springen
uencoder

Varint

Ein Varint (Ganzzahl variabler Länge) ist die Ganzzahlkodierung variabler Länge, die Protobuf und andere Protokolle verwenden: Jedes Byte trägt 7 Nutzbits in den niedrigen Bits, und das höchstwertige Bit ist das Fortsetzungsflag.

Zweck

Ganzzahlen in Serialisierungsprotokollen kompakt darstellen — kleine Ganzzahlen brauchen sehr wenig Platz, große erweitern sich automatisch.

Mechanismus

Die vorzeichenlose Ganzzahl wird in 7-Bit-Gruppen zerlegt, von der niederwertigsten zur höchstwertigen ausgegeben; eine 1 im MSB eines Bytes bedeutet, dass weitere folgen, eine 0 markiert das Ende. Vorzeichenbehaftete Ganzzahlen werden zuerst per ZigZag auf vorzeichenlose abgebildet.

Anwendungsfälle

  • Protobuf-Feldkodierung
  • Variablange Datenbankspalten
  • Kompakte binäre Protokolle

Verwandte Tools

References