# 1-Komplement visualisieren: Negation per Bitflip

> Einerkomplement mit n Bit interaktiv: Negation durch Kippen aller Bits, doppelte Null, symmetrischer Wertebereich, bei 8 Bit −127 bis 127.

Adresse: https://marckimmel.de/informatik/zahlenkodierungen/einerkomplement
English version: https://marckimmel.de/en/informatik/zahlenkodierungen/einerkomplement.md

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

Die 1-Komplement-Codierung c_(1K,n) teilt die 2^n 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 −(2^(n-1) − 1) bis 2^(n-1) − 1, bei n = 8 also −127 bis +127. Eine nichtnegative Zahl wird wie bei c_(2,n) codiert; für negative Zahlen wird zuerst |x| binär codiert und anschließend werden alle Bits gekippt, formell c_(1K,n)(−x) = c_(2,n)((2^n − 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 −(2^(n-1) − 1), den Rest wie bei c_(2,n). Die Addition läuft binär; bei Bit-Überlauf wird modulo (2^n − 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.

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.

## Weiter

- [Zahlenkodierungen](https://marckimmel.de/informatik/zahlenkodierungen.md)
