Exzess-q
Codiert ganze Zahlen mit Verschiebung um einen festen Bias q. Lexikografisch sortierbar.
Eingaben oben setzen und Berechnen drücken, dann wird die Schritt-für-Schritt-Rechnung angezeigt.
Funktionsweise und Bereich
Die Exzess-q-Codierung cEX-q,n addiert vor dem Codieren einen festen Bias q zur Zahl und codiert das Ergebnis binär: cEX-q,n(x) := c2,n(x + q). Der Wertebereich reicht von −q bis 2n − 1 − q; mit dem Standard-Bias q = 2n-1 − 1 wird er symmetrisch und enthält etwa gleich viele positive wie negative Werte. Codiert wird durch x + q binär in n Bit, decodiert durch binäre Decodierung gefolgt vom Abziehen von q. Bei Addition und Subtraktion addiert oder subtrahiert man die Codes binär und korrigiert den Bias q einmal nach: bei Addition wird q einmal abgezogen, bei Subtraktion einmal addiert. Eine angenehme Eigenschaft ist die lexikografische Sortierung der Bitmuster: sie liegen in derselben Reihenfolge wie die codierten Zahlen, sodass die Hardware Codes direkt vergleichen kann. Bitmuster mit führender 0 entsprechen negativen Zahlen, anders als bei 2-Komplement. Bereichsüberläufe sind hier nicht zyklisch interpretierbar, sondern liefern undefinierte Ergebnisse.
Wann verwenden?
Die Exzess-q-Codierung wird in der Gleitkomma-Codierung cGK,k,n für den Exponenten verwendet. IEEE 754 nutzt dafür: binary16 mit n = 5, q = 15; binary32 (float) mit n = 8, q = 127; binary64 (double) mit n = 11, q = 1023; binary128 mit n = 15, q = 16383. Dank der lexikografischen Sortierung können Float-Größenvergleiche zum Großteil als Integer-Vergleich auf den Bitmustern laufen.