Zweierkomplement-Rechner
Eingaben
| Richtung | Dezimal → Binär |
|---|---|
| Bitbreite | 8 Bit |
| Dezimalwert | -42 |
| Binäreingabe | 11010110 |
Zweierkomplement-Rechner
Ganzzahl in Zweierkomplement-Darstellung (binär und hexadezimal) umrechnen oder einen Binärstring als vorzeichenbehaftete Dezimalzahl dekodieren. Wählbare Bitbreite: 8, 16, 32 oder 64 Bit.
Eingaben
Eingabe
Ergebnisse
Geben Sie einen Wert ein, um die Ergebnisse zu sehen.
Darstellung
Zweierkomplement
Das Zweierkomplement ist das standardisierte Verfahren, mit dem digitale Rechenanlagen vorzeichenbehaftete Ganzzahlen speichern und verarbeiten. Alle verbreiteten Prozessorarchitekturen — x86, ARM, RISC-V, MIPS — nutzen das Zweierkomplement in ihren Ganzzahlarithmetikeinheiten, weil diese Kodierung die Subtraktion mit demselben Schaltkreis wie die Addition ermöglicht und die Null eindeutig durch genau ein Bitmuster repräsentiert wird.
Kodierungsschema
Ein N-Bit-Zweierkomplement-Register enthält verschiedene Bitmuster. Die Hälfte davon repräsentiert nicht-negative Ganzzahlen ( bis ), die andere Hälfte negative Ganzzahlen ( bis ). Das entscheidende Merkmal ist das höchstwertige Bit (das ganz links stehende Bit): es fungiert als Vorzeichenbit — 0 für nicht-negative, 1 für negative Werte.
Für nicht-negative Ganzzahlen stimmt die Zweierkomplement-Darstellung mit der gewöhnlichen vorzeichenlosen Binärdarstellung überein. Die Zahl 42 lautet in einem 8-Bit-Register:
Berechnung des Zweierkomplements einer negativen Zahl
Um die Zweierkomplement-Darstellung einer negativen Ganzzahl (mit ) in einem N-Bit-Register zu bestimmen, addiert man zum Wert:
Für bei 8 Bit: . In Binärdarstellung, in Nibble-Gruppen aufgeteilt:
21410=110101102=0xD6Ein praktisches Rechenverfahren: Alle Bits der positiven Darstellung invertieren und anschließend 1 addieren.
- Invertieren:
- Plus 1: ✓
Beide Methoden liefern dasselbe Ergebnis.
Rückkodierung in eine Dezimalzahl
Um einen Zweierkomplement-Binärstring in eine vorzeichenbehaftete Dezimalzahl umzuwandeln, wird zunächst das Vorzeichenbit geprüft:
- Ist das führende Bit 0, ist der Wert nicht-negativ. Die Zahl wird wie eine gewöhnliche vorzeichenlose Binärzahl gelesen: .
- Ist das führende Bit 1, ist der Wert negativ. Von der vorzeichenlosen Interpretation wird subtrahiert: , also .
Darstellbare Wertebereiche
Das Vorzeichenbit halbiert den vorzeichenlosen Bereich. Ein N-Bit-Register kann folgende Werte darstellen:
| Bitbreite | Minimum | Maximum |
|---|---|---|
| 8 Bit | −128 | 127 |
| 16 Bit | −32.768 | 32.767 |
| 32 Bit | −2.147.483.648 | 2.147.483.647 |
| 64 Bit | −9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 |
Die Asymmetrie — stets ein negativer Wert mehr als positive — ergibt sich daraus, dass die Null einen der nicht-negativen Plätze belegt. Es stehen damit strikt positive Werte neben negativen Werten.
Überlauf
Liegt ein Rechenergebnis außerhalb des darstellbaren Bereichs, „wickelt" es sich am Rand um — ein Effekt, der als Überlauf (englisch: overflow) bezeichnet wird. Bei einem 8-Bit-Register ergibt die Addition von 1 zu 127: . Dieses Bitmuster kodiert jedoch −128. Hardware-Prozessoren setzen bei einem Überlauf ein Überlauf-Flag, damit Software den Zustand erkennen und behandeln kann. Die Bitoperation selbst ist eine einfache modulare Addition.
Vorzeichen-Betrags-Darstellung vs. Zweierkomplement
Bei der alternativen Vorzeichen-Betrags-Darstellung ist ein Bit ausschließlich für das Vorzeichen reserviert, die verbleibenden N−1 Bits kodieren den Absolutbetrag. Diese Darstellung hat zwei Nachteile: Erstens gibt es zwei Kodierungen der Null — positive Null () und negative Null () —, was Vergleichsoperationen verkompliziert. Zweitens erfordert die Addition gemischtvorzeichiger Zahlen eine gesonderte Logik zur Bestimmung des betragsmäßig größeren Operanden. Das Zweierkomplement löst beide Probleme: Ein einziger Addiererschaltkreis genügt für alle Fälle, und die Null besitzt genau eine Darstellung ().
Häufig gestellte Fragen (FAQ)
Warum wird das Zweierkomplement anstelle der Vorzeichen-Betrags-Darstellung verwendet?
Die Vorzeichen-Betrags-Darstellung speichert das Vorzeichen in einem eigenen Bit und den Absolutbetrag in den verbleibenden Bits. Das führt zu zwei Darstellungen der Null (positive Null und negative Null) und erfordert separate Schaltkreise für Addition und Subtraktion.
Das Zweierkomplement beseitigt beide Probleme: Die Null besitzt genau ein Bitmuster, und derselbe Addiererschaltkreis verarbeitet positive wie negative Zahlen ohne Sonderfälle. Diese Einfachheit ist der Grund, warum alle modernen Prozessoren das Zweierkomplement für die Ganzzahlarithmetik verwenden.
Welchen Wertebereich hat eine vorzeichenbehaftete 8-Bit-Ganzzahl?
Eine 8-Bit-Zweierkomplement-Ganzzahl kann insgesamt 256 Werte darstellen: −128 bis 127. Der kleinste darstellbare Wert (−128) hat das Bitmuster 10000000, wobei die führende 1 einen negativen Wert anzeigt. Der größte Wert (127) lautet 01111111. Die Asymmetrie — ein negativer Wert mehr als positive — entsteht, weil die Null einen der nicht-negativen Plätze belegt.
Für ein N-Bit-Register gilt allgemein: der Wertebereich reicht von −2^(N−1) bis 2^(N−1) − 1. Bei 16 Bit sind das −32.768 bis 32.767, bei 32 Bit −2.147.483.648 bis 2.147.483.647.
Weitere Empfehlungen
IPv4-Adressdarstellung-Umrechner
Geben Sie eine IPv4-Adresse in punktierter Dezimalschreibweise ein, um sie als 32-Bit-Ganzzahl, Hexadezimalwert und punktierte Binärdarstellung zu sehen. Nützlich zum Lesen von Paketmitschnitten, Erstellen von Zugriffslisten und Verstehen, wie Adressen gespeichert werden.