Zweierkomplement
−42 ist im 8-Bit-Zweierkomplement 1101 0110 (0xD6). Dezimal in Binär und Hex umrechnen, Binär zurück, Subtraktion mit Übertrag und Überlauf, 4 bis 64 Bit.
- Hexadezimal
- 0xD6
- Einerkomplement (nur invertiert)
- 1101 0101
- Betrag binär
- 0010 1010
- Gleiches Bitmuster als unsigned
- 214
- Höchstes Bit (Vorzeichen)
- 1 - negative Zahl
- Überlauf
- nein
- Wertebereich
- -128 bis 127
- Rechenweg
Betrag 42 binär: 0010 1010 Bits invertieren: 1101 0101 (Einerkomplement) + 1: 1101 0110 = -42
Stellenwerte (MSB zählt negativ)
| Bit | Wertigkeit | Wert | Beitrag |
|---|---|---|---|
| 7 | -128 | 1 | -128 |
| 6 | 64 | 1 | 64 |
| 5 | 32 | 0 | 0 |
| 4 | 16 | 1 | 16 |
| 3 | 8 | 0 | 0 |
| 2 | 4 | 1 | 4 |
| 1 | 2 | 1 | 2 |
| 0 | 1 | 0 | 0 |
Rechenweg mit deinen Zahlen
- MSB = 1 → negativ
- Wert = Bitmuster als unsigned − 2^8 = 214 − 256 = -42
Was macht ein Zweierkomplement-Rechner?
Ein Zweierkomplement-Rechner übersetzt zwischen Dezimalzahlen, Binärmustern und Hexwerten, ohne dass du das Vorzeichen von Hand aus dem höchsten Bit ableiten musst. Das ist hilfreich, wenn du ein Bitmuster aus Code, Speicher, Protokollen oder Datenblättern vor dir hast und wissen willst, ob es als signed Zahl positiv oder negativ gelesen wird.
Wähle die Umrechnungsart, die Bitbreite und gib den Dezimalwert, das Binärmuster, den Hexwert oder die beiden Rechenwerte ein. Der Punkt ist dabei immer die feste Bitbreite: Dasselbe Bitmuster kann signed anders aussehen als unsigned. Das Muster 1101 0110 ist bei 8 Bit im Zweierkomplement -42, als unsigned aber 214. Der Rechner zeigt deshalb beide Sichtweisen an, damit du keine Darstellung mit einem Zahlenwert verwechselst.
Das höchste Bit ist das Vorzeichenbit. Steht dort 0, ist der Wert positiv oder 0. Steht dort 1, wird das Muster als negative Zahl gelesen. Bei 8 Bit reicht der Wertebereich von -128 bis 127. Alles, was außerhalb dieses Bereichs liegt, passt nicht als signed 8-Bit-Wert und wird als Überlauf markiert.
Wie berechnet man das Zweierkomplement?
Die Rechnung für eine negative Zahl läuft in Worten so: Du schreibst zuerst den Betrag binär in der gewünschten Bitbreite, invertierst alle Bits und addierst 1. Das invertierte Muster allein ist das Einerkomplement. Erst nach dem Addieren von 1 entsteht das Zweierkomplement.
Beispiel mit -42 in 8 Bit:
- Betrag binär: 0010 1010
- Bits invertieren: 1101 0101
- 1 addieren: 1101 0110
- Hexadezimal: 0xD6
Damit ist -42 in 8 Bit das Bitmuster 1101 0110. Das höchste Bit ist 1, also wird das Muster als negative Zahl gelesen. Als unsigned hat dasselbe Muster den Wert 214. Genau dieser Unterschied erklärt viele scheinbare Widersprüche: Das Bitmuster bleibt gleich, nur die Interpretation ändert sich.
Beim Zurückrechnen gilt die umgekehrte Sicht. Hat das höchste Bit den Wert 1, liest du das Muster zunächst als unsigned und ziehst den zur Bitbreite passenden Modulus ab. Für 1101 0110 bei 8 Bit zeigt die Rechnung: 214 - 256 = -42. Bei 16 Bit wäre das passende Muster 1111 1111 1101 0110, hexadezimal 0xFFD6, und als unsigned 65494.
Zweierkomplement in Dezimal, Binär und Hex lesen
Hexwerte sind im Rechnerumfeld oft kompakter als lange Binärzahlen. Inhaltlich sind sie aber nur eine andere Schreibweise desselben Bitmusters. 0xD6 entspricht bei 8 Bit dem Muster 1101 0110 und wird im Zweierkomplement als -42 gelesen. Bei 16 Bit steht 0xFFD6 für 1111 1111 1101 0110 und ebenfalls für -42.
Ein kurzer Vergleich typischer 8-Bit-Werte:
| Dezimal | 8-Bit-Zweierkomplement | Hex | unsigned |
|---|---|---|---|
| -128 | 1000 0000 | 0x80 | 128 |
| -42 | 1101 0110 | 0xD6 | 214 |
| -1 | 1111 1111 | 0xFF | 255 |
| 0 | 0000 0000 | 0x00 | 0 |
| 13 | 0000 1101 | 0x0D | 13 |
| 42 | 0010 1010 | 0x2A | 42 |
| 127 | 0111 1111 | 0x7F | 127 |
Auffällig ist: Negative Werte beginnen bei 8 Bit immer mit 1. Positive Werte und 0 beginnen mit 0. Trotzdem solltest du nicht nur auf die erste Stelle schauen, sondern immer die Bitbreite kennen. Ein kurzer Hexwert kann je nach Kontext links mit Nullen oder Einsen erweitert werden. Für signed Werte ist das Vorzeichenbit dabei der Anker.
Wie funktionieren Addition und Subtraktion im Zweierkomplement?
Der Vorteil des Zweierkomplements ist, dass Addition und Subtraktion mit derselben Binäraddition funktionieren. Für A - B rechnet der Rechner A + (-B). Die negative Zahl entsteht wieder über das Zweierkomplement von B.
Beispiel 25 - 12 in 8 Bit:
- A binär: 0001 1001
- -B als Zweierkomplement: 1111 0100
- Summe: 1 0000 1101
- Ergebnis auf 8 Bit: 0000 1101
- Dezimal: 13
Der Übertrag aus dem höchsten Bit wird bei fester Bitbreite verworfen. Das ist kein Fehler. In diesem Beispiel meldet die Rechnung Übertrag: ja, aber Überlauf: nein. Wichtig ist also der Unterschied zwischen Übertrag und Overflow. Ein Übertrag kann bei einer Subtraktion ganz normal auftreten. Ein Überlauf bedeutet dagegen, dass das signed Ergebnis nicht mehr in den Wertebereich der gewählten Bitbreite passt.
Auch gemischte Vorzeichen funktionieren so. Bei -25 + 12 in 8 Bit ist A binär 1110 0111, der zweite Summand 0000 1100, das Ergebnis 1111 0011 und dezimal -13. Bei 100 - 42 in 16 Bit ist das Ergebnis 0000 0000 0011 1010, hexadezimal 0x003A und dezimal 58.
Welche Fehler solltest du beim Zweierkomplement vermeiden?
Der häufigste Fehler ist eine falsche Bitbreite. -42 sieht bei 8 Bit als 1101 0110 aus, bei 16 Bit aber als 1111 1111 1101 0110. Beide Muster bedeuten denselben signed Wert, sind aber nicht dieselbe Darstellung. Wenn du Daten aus einem Register, einem Bytefeld oder einer Datei liest, musst du deshalb zuerst wissen, wie viele Bits zusammengehören.
Der zweite typische Fehler ist die Verwechslung von signed und unsigned. 1111 1111 ist bei 8 Bit im Zweierkomplement -1, unsigned aber 255. 1100 1000 ist als unsigned 200, liegt als signed 8-Bit-Wert aber außerhalb des Bereichs -128 bis 127. Der Rechner zeigt dafür Überlauf: ja und liest das Muster im signed Zusammenhang als -56.
Der dritte Fehler betrifft das Einerkomplement. Nur invertieren reicht nicht. Bei -42 in 8 Bit ist 1101 0101 erst das Einerkomplement. Das Zweierkomplement entsteht erst nach dem Addieren von 1 und lautet 1101 0110.
Praktische Regeln:
- Erst Bitbreite festlegen, dann interpretieren.
- Bei höchstem Bit 1 an signed negative Werte denken.
- Hexwerte immer in Binär und Bitbreite übersetzen.
- Übertrag nicht automatisch mit Überlauf gleichsetzen.
- Bei Subtraktion B zuerst als negative Zahl im Zweierkomplement schreiben.
Tabellen zum Nachschlagen
Zweierkomplement-Tabelle 4 Bit: alle 16 Werte
| Binär | Zweierkomplement | unsigned | Hex |
|---|---|---|---|
| 0000 | 0 | 0 | 0x0 |
| 0001 | 1 | 1 | 0x1 |
| 0010 | 2 | 2 | 0x2 |
| 0011 | 3 | 3 | 0x3 |
| 0100 | 4 | 4 | 0x4 |
| 0101 | 5 | 5 | 0x5 |
| 0110 | 6 | 6 | 0x6 |
| 0111 | 7 | 7 | 0x7 |
| 1000 | -8 | 8 | 0x8 |
| 1001 | -7 | 9 | 0x9 |
| 1010 | -6 | 10 | 0xA |
| 1011 | -5 | 11 | 0xB |
| 1100 | -4 | 12 | 0xC |
| 1101 | -3 | 13 | 0xD |
| 1110 | -2 | 14 | 0xE |
| 1111 | -1 | 15 | 0xF |
Zweierkomplement-Tabelle 8 Bit: Dezimal, Binär und Hex
| Dezimal | 8-Bit-Zweierkomplement | Hex | als unsigned |
|---|---|---|---|
| -128 | 1000 0000 | 0x80 | 128 |
| -127 | 1000 0001 | 0x81 | 129 |
| -100 | 1001 1100 | 0x9C | 156 |
| -64 | 1100 0000 | 0xC0 | 192 |
| -50 | 1100 1110 | 0xCE | 206 |
| -42 | 1101 0110 | 0xD6 | 214 |
| -32 | 1110 0000 | 0xE0 | 224 |
| -20 | 1110 1100 | 0xEC | 236 |
| -16 | 1111 0000 | 0xF0 | 240 |
| -10 | 1111 0110 | 0xF6 | 246 |
| -8 | 1111 1000 | 0xF8 | 248 |
| -5 | 1111 1011 | 0xFB | 251 |
| -4 | 1111 1100 | 0xFC | 252 |
| -3 | 1111 1101 | 0xFD | 253 |
| -2 | 1111 1110 | 0xFE | 254 |
| -1 | 1111 1111 | 0xFF | 255 |
| 0 | 0000 0000 | 0x00 | 0 |
| 1 | 0000 0001 | 0x01 | 1 |
| 2 | 0000 0010 | 0x02 | 2 |
| 5 | 0000 0101 | 0x05 | 5 |
| 10 | 0000 1010 | 0x0A | 10 |
| 42 | 0010 1010 | 0x2A | 42 |
| 64 | 0100 0000 | 0x40 | 64 |
| 100 | 0110 0100 | 0x64 | 100 |
| 127 | 0111 1111 | 0x7F | 127 |
Wertebereich im Zweierkomplement: 4, 8, 16, 32 und 64 Bit
| Bit | Kleinster Wert | Größter Wert | −1 in Hex | Datentyp |
|---|---|---|---|---|
| 4 | -8 | 7 | 0xF | Nibble |
| 8 | -128 | 127 | 0xFF | int8_t / byte (Java) |
| 16 | -32768 | 32767 | 0xFFFF | int16_t / short |
| 32 | -2147483648 | 2147483647 | 0xFFFFFFFF | int32_t / int |
| 64 | -9223372036854775808 | 9223372036854775807 | 0xFFFFFFFFFFFFFFFF | int64_t / long |
Beispiele zum Ausprobieren
Häufige Fragen
Wie lautet das Zweierkomplement von -42 in 8 Bit?
Das Zweierkomplement von -42 in 8 Bit ist 1101 0110. Hexadezimal ist das 0xD6. Der Rechenweg lautet: Betrag 42 als 0010 1010 schreiben, Bits invertieren zu 1101 0101 und 1 addieren. Das Ergebnis liegt im Bereich -128 bis 127.
Was bedeutet 11111111 im Zweierkomplement?
11111111 bedeutet bei 8 Bit im Zweierkomplement -1. Als formatiertes Bitmuster ist das 1111 1111, hexadezimal 0xFF. Als unsigned wäre dasselbe Muster 255. Der Unterschied entsteht nur durch die Interpretation als signed oder unsigned Wert.
Wie lese ich 0xD6 als Zweierkomplement?
0xD6 wird bei 8 Bit im Zweierkomplement als -42 gelesen. Der zugehörige Binärwert ist 1101 0110. Weil das höchste Bit 1 ist, handelt es sich um eine negative Zahl. Als unsigned entspricht dasselbe Bitmuster dem Wert 214.
Warum ist 200 bei 8 Bit ein Überlauf?
200 ist bei 8 Bit als signed Zweierkomplement ein Überlauf, weil der Wertebereich von -128 bis 127 reicht. Das Bitmuster lautet 1100 1000 und hexadezimal 0xC8. Als unsigned ist es 200, als signed Muster wird es im Rechner als -56 interpretiert.
Was ist der Unterschied zwischen Einerkomplement und Zweierkomplement?
Das Einerkomplement ist nur das invertierte Bitmuster, das Zweierkomplement entsteht erst nach dem Addieren von 1. Bei -42 in 8 Bit ist das Einerkomplement 1101 0101. Nach + 1 wird daraus 1101 0110, also die eigentliche Zweierkomplement-Darstellung.
Wie funktioniert 25 - 12 im Zweierkomplement?
25 - 12 ergibt im 8-Bit-Zweierkomplement 13. A ist 0001 1001, der zweite Summand für -12 ist 1111 0100. Die Summe liefert 1 0000 1101, der Übertrag wird verworfen. Übrig bleibt 0000 1101, hexadezimal 0x0D.
Welchen Wertebereich hat das Zweierkomplement bei 16 Bit?
Bei 16 Bit reicht der Wertebereich im Zweierkomplement von -32768 bis 32767. Ein Beispiel: -42 wird als 1111 1111 1101 0110 dargestellt, hexadezimal 0xFFD6. Dasselbe Bitmuster hat unsigned den Wert 65494, signed aber -42.
Quellen und Prüfung
- Zweierkomplement - Wikipedia
- Java Language Specification § 4.2: Integral Types (two's-complement) - Oracle
- N2412: Two's complement sign representation for C2x - ISO/IEC JTC1/SC22/WG14
Diese Seite zitieren
Zweierkomplement. Rechnerinfo, Stand 23.09.2026. https://rechner-info.de/technik/zweierkomplement-rechner

