Zweierkomplement
Zweierkomplement-Darstellung einer negativen Zahl als vorzeichenlose Bitfolge: neg = 2^n − pos. Bei n Bits wird so −pos als (2^n − pos) abgebildet.
Zweierkomplement berechnen
Zweierkomplement-Darstellung einer negativen Zahl als vorzeichenlose Bitfolge: neg = 2^n − pos. Bei n Bits wird so −pos als (2^n − pos) abgebildet.
- neg — Zweierkomplement
- pos — Positiver Wert
- n — Bitbreite
Worum geht es?
Das Zweierkomplement ist die Standardkodierung für vorzeichenbehaftete ganze Zahlen in nahezu allen heutigen CPUs. Eine negative Zahl −pos wird in einem n-Bit-Register als die positive Zahl 2^n − pos abgelegt. Dadurch funktioniert die normale Binär-Addition auch über die Null-Grenze hinweg, ohne dass die ALU zwischen Addition und Subtraktion umschalten müsste.
Bonus: Es gibt nur eine Null-Darstellung (im Gegensatz zum Einerkomplement) und das höchstwertige Bit (MSB) zeigt direkt das Vorzeichen an.
Die Formel
neg = 2^n − pos
Umstellungen:
pos = 2^n − neg
n = log₂(pos + neg)Die Variablen
| Symbol | Bedeutung | Einheit | Erklärung |
|---|---|---|---|
| pos | Positiver Wert | — | Betrag der negativen Zahl (positive Eingabe). |
| n | Bitbreite | Bit | Anzahl Bits des Zielformats (z. B. 8, 16, 32, 64). |
| neg | Zweierkomplement | — | Bitmuster als vorzeichenlose Zahl interpretiert. |
Minimal-Beispiel
Bilde das Zweierkomplement von 5 in 8 Bit:
neg = 2^8 − 5
= 256 − 5
= 251 (entspricht 1111 1011₂)Praxis-Beispiele
Beispiel 1 — Praktische Konstruktion
Alternative Vorgehensweise (ohne Subtraktion):
1. pos in Binär: 5 → 0000 0101
2. Alle Bits invertieren: 1111 1010
3. +1 addieren: 1111 1011
Ergebnis: 251 (entspricht −5 in 8 Bit)Das ist äquivalent zu 2^n − pos.
Beispiel 2 — 16-Bit-Wert
Das Zweierkomplement von 1000 in 16 Bit:
neg = 2^16 − 1000
= 65 536 − 1000
= 64 536 (entspricht FC18₁₆)Beispiel 3 — Rückgewinnung des Betrags
Aus dem Bitmuster 0xFF (= 255) in 8 Bit lässt sich der Betrag rekonstruieren:
pos = 2^8 − 255
= 1
⇒ Bitmuster 0xFF entspricht −1