Zum Inhalt springenSkip to content
Zahlenkodierungen

1-Komplement

Erweitert die Binärcodierung um negative Zahlen: Negation durch Kippen aller Bits.

Eingaben oben setzen und Berechnen drücken, dann wird die Schritt-für-Schritt-Rechnung angezeigt.

Funktionsweise und Bereich

Die 1-Komplement-Codierung c1K,n teilt die 2n Bitmuster in zwei Hälften: positive mit führendem Bit 0 und negative mit führendem Bit 1. Negation entspricht dem Bitflip aller Stellen. Der Wertebereich reicht von −(2n-1 − 1) bis 2n-1 − 1, bei n = 8 also −127 bis +127. Eine nichtnegative Zahl wird wie bei c2,n codiert; für negative Zahlen wird zuerst |x| binär codiert und anschließend werden alle Bits gekippt, formell c1K,n(−x) = c2,n((2n − 1) − x). Bei der Decodierung verfährt man bei führendem Bit 0 wie bei der Binärcodierung; bei führendem Bit 1 kippt man alle Bits, decodiert normal und setzt ein Minuszeichen davor. Alternativ liest man das höchstwertige Bit mit Sondergewicht −(2n-1 − 1), den Rest wie bei c2,n. Die Addition läuft binär; bei Bit-Überlauf wird modulo (2n − 1) korrigiert, in der Praxis durch Abschneiden des Überlaufs und Addition von +1 auf das Ergebnis. Die zentrale Stolperfalle der 1-Komplement-Codierung ist die doppelte Null: 0…0 codiert +0, 1…1 codiert −0, sodass jeder Test auf Null zwei Bitmustervergleiche braucht.

Wann verwenden?

Historisch war die 1-Komplement-Codierung in frühen Großrechnern wie der PDP-1 oder der UNIVAC-1100-Serie in Verwendung. Heute findet sie keine praktische Anwendung mehr, dient aber als Lehrbeispiel und als konzeptioneller Zwischenschritt zum 2-Komplement. Die einfache Negation per Bitflip ist Hardware-freundlich und elegant, die doppelte Null hat sich aber als zu großes Problem erwiesen.