Binärcodierung
Speichert nichtnegative ganze Zahlen als Binärzahl in n Bit, vorne mit Nullen aufgefüllt.
Eingaben oben setzen und Berechnen drücken, dann wird die Schritt-für-Schritt-Rechnung angezeigt.
Funktionsweise und Bereich
Die Binärcodierung c2,n : {0, …, 2n − 1} → Bn speichert eine nichtnegative ganze Zahl x als Binärzahl in n Bit, gegebenenfalls vorne mit Nullen aufgefüllt. Der darstellbare Bereich reicht von 0 bis 2n − 1, bei n = 8 also 0 bis 255, bei n = 16 bereits 0 bis 65 535 und bei n = 32 etwa 4,29 Milliarden. Die Codierung berechnet das Hornerverfahren, also wiederholte ganzzahlige Division durch 2; die Reste werden von unten nach oben gelesen und ergeben die Binärziffern, die anschließend mit führenden Nullen auf n Bit aufgefüllt werden. Decodiert wird, indem die Zweier-Potenzen 2i an den Positionen aufsummiert werden, an denen eine 1 steht: (bn-1 … b0)2,n = ∑ bi · 2i. Addition läuft stellenweise von rechts nach links mit Übertrag wie im Dezimalsystem; bei Bit-Überlauf wird modulo 2n gerechnet, also das höchstwertige Bit verworfen. Eine angenehme Eigenschaft ist die lexikografische Sortierbarkeit: größere Zahlen haben lexikografisch größere Bitmuster, sodass die Hardware Codes ohne Decodierung direkt vergleichen kann. Vorzeichen kennt die Binärcodierung nicht.
Wann verwenden?
In C entspricht die Binärcodierung den unsigned-Datentypen (unsigned char, unsigned int und so weiter). Sie ist sinnvoll, wenn negative Werte ausgeschlossen sind, also bei Array-Indizes, Größen, Bitfeldern, Maschinen-Registern, Pixel-Werten oder generell hardwarenaher Programmierung. Beachte: Arithmetik mit unsigned-Werten rechnet modulo 2n, ein Überlauf führt nicht zu einem Fehler, sondern zu einem zyklischen Wrap.