Zweierkomplement Rechner
Dezimal → Zweierkomplement: —
Zweierkomplement → Dezimal: —
Beide Umrechnungsrichtungen funktionieren unabhängig voneinander. Zahlen außerhalb des gewählten Wertebereichs können nicht dargestellt werden.
Das Zweierkomplement ist eine Darstellung für ganze Zahlen mit Vorzeichen. Es wird verwendet, um positive und negative Zahlen mit einer festen Anzahl von Bits zu speichern und zu verrechnen. Ein Zweierkomplement-Rechner hilft dabei, eine Dezimalzahl in ein Bitmuster umzuwandeln oder ein vorhandenes Bitmuster als vorzeichenbehaftete Zahl zu lesen.
Entscheidend ist die Bitbreite: Dieselbe Folge von Nullen und Einsen kann je nach Länge und Interpretation einen anderen Wert haben. Im Folgenden erkläre ich die Umrechnung anhand von 8 Bit und zeige, worauf bei 16 Bit zu achten ist.
So entsteht das Zweierkomplement
Eine positive Zahl wird zunächst als Binärzahl geschrieben und links mit Nullen auf die gewünschte Bitbreite ergänzt. Um die negative Zahl zu erhalten, werden alle Bits umgekehrt – aus 0 wird 1 und umgekehrt. Anschließend wird 1 addiert.
Für −5 bei 8 Bit sieht die Rechnung so aus:
- +5 = 00000101
- Bits umkehren: 11111010
- Eins addieren: 11111010 + 1 = 11111011
Das 8-Bit-Zweierkomplement von −5 lautet somit 11111011. Die Bitbreite muss vor der Umrechnung feststehen: Bei 16 Bit wäre −5 als 1111111111111011 dargestellt.
Beispiele für 8 Bit
| Dezimalzahl | Zweierkomplement mit 8 Bit | Hinweis |
|---|---|---|
| −128 | 10000000 | Kleinster darstellbarer Wert |
| −13 | 11110011 | Aus 00001101 durch Umkehren und Addieren von 1 |
| −5 | 11111011 | Negatives Rechenbeispiel |
| 0 | 00000000 | Null bleibt unverändert |
| 127 | 01111111 | Größter darstellbarer Wert |
Ein Bitmuster zurück in eine Dezimalzahl umrechnen
Bei einer festgelegten Bitbreite zeigt das linke Bit an, ob die Zahl negativ ist: Beginnt das Muster mit 0, wird es wie eine gewöhnliche positive Binärzahl gelesen. Beginnt es mit 1, ist der Wert im Zweierkomplement negativ.
Eine Möglichkeit zur Berechnung ist, das Bitmuster zunächst als vorzeichenlose Zahl zu lesen und bei einem führenden 1 anschließend 2n abzuziehen. Dabei ist n die Bitbreite. Das Muster 11111011 hat vorzeichenlos den Wert 251. Mit 8 Bit ergibt sich 251 − 28 = 251 − 256 = −5.
Die Bitbreite verändert also das Ergebnis: 11111011 bedeutet als 8-Bit-Zweierkomplement −5. Wird dieselbe Folge dagegen links mit Nullen auf 16 Bit ergänzt, entsteht 0000000011111011 – das entspricht 251. Soll −5 auf 16 Bit erweitert werden, müssen links Einsen ergänzt werden.
Wertebereich und Überlauf
Mit n Bit reicht der Wertebereich im Zweierkomplement von −2n−1 bis 2n−1 − 1. Bei 8 Bit sind das −128 bis +127. Deshalb lässt sich +128 mit 8 Bit im Zweierkomplement nicht darstellen.
Das ist auch bei Additionen wichtig. Rechnerisch ergibt 127 + 1 = 128. In einer auf 8 Bit begrenzten Zweierkomplement-Rechnung entsteht jedoch 01111111 + 00000001 = 10000000. Dieses Bitmuster steht für −128: Es liegt ein Überlauf vor, nicht das korrekte 8-Bit-Ergebnis für +128.
Für eine verlässliche Umrechnung im Zweierkomplement-Rechner sollten daher immer sowohl der Zahlenwert beziehungsweise das Bitmuster als auch die gewünschte Bitbreite feststehen.