- 1 Section
- 10 Lessons
- unbegrenzt
- Zahlensysteme & Boolesche Algebra10
- 1.1Warum Zahlensysteme? Stellenwertsysteme
- 1.2Binärsystem: Aufbau und Zählen
- 1.3Dezimal ↔ Binär umrechnen
- 1.4Hexadezimalsystem
- 1.5Hex ↔ Binär ↔ Dezimal: alle Umrechnungen
- 1.6Negative Zahlen: Zweierkomplement
- 1.7Boolesche Algebra: UND, ODER, NICHT
- 1.8XOR, NAND, NOR
- 1.9Bitmasken und logische Verknüpfungen in der IT
- 1.10Aufgaben Zahlensysteme & Logik
Negative Zahlen: Zweierkomplement
Bisher haben wir nur positive Zahlen in Binär dargestellt. Aber Computer müssen auch negative Zahlen verarbeiten – Temperaturen, Kontostände, Differenzen, Koordinaten. Die Frage ist: wie speichert man -7, wenn man nur Nullen und Einsen hat? Es gibt kein Minus-Bit.
Die elegante Lösung heißt Zweierkomplement. Sie ist die in praktisch jedem modernen Computer verwendete Darstellung für negative Zahlen. Sie wirkt zunächst wie ein Trick, hat aber einen genialen Vorteil: Addition und Subtraktion funktionieren mit positiven und negativen Zahlen exakt gleich. Die CPU muss nicht zwischen „Plus-Rechnen" und „Minus-Rechnen" unterscheiden – ein einziger Schaltkreis macht beides.
1) Das Vorzeichen-Bit
Die Grundidee ist erstmal einfach: in einer signed (vorzeichenbehafteten) Darstellung wird das höchstwertige Bit (MSB) als Vorzeichen interpretiert. Ist es 0, ist die Zahl positiv. Ist es 1, ist die Zahl negativ.
Das bedeutet sofort: wenn man 8 Bits hat, sind nicht mehr alle für den Zahlenwert da. Nur 7 Bits tragen die eigentliche Zahl, das achte ist Vorzeichen. Konsequenz: der Wertebereich halbiert sich. Statt 0 bis 255 (unsigned) bekommen wir -128 bis +127 (signed). Insgesamt immer noch 256 Werte, nur anders verteilt.
00000000 ist Null, nicht negativ Null. Diese Asymmetrie ist ein häufiges Detail in IHK-Aufgaben.2) Die Bitfolge ist allein nicht eindeutig
Wichtige Konsequenz: ein Byte wie 11110001 kann zwei verschiedene Bedeutungen haben – je nachdem, ob es als unsigned oder signed interpretiert wird:
- Als unsigned 8-bit: = 128 + 64 + 32 + 16 + 1 = 241
- Als signed 8-bit (Zweierkomplement): = -15 (wie gleich gezeigt)
Das Bitmuster ist physikalisch gleich – nur die Interpretation unterscheidet. Programmiersprachen kennen deshalb meist beide Typen: byte/signed char vs. unsigned byte/unsigned char. In Java ist byte standardmäßig signed (-128 bis 127), das überrascht oft.
3) Der Zahlenring – die geniale Idee
Statt sich das Zweierkomplement als Trick zu merken, hilft eine geometrische Analogie: stell dir die Zahlen auf einer Uhr vor. Bei 8 Bits gibt es 256 mögliche Bitmuster (0 bis 255). Diese ordnen wir kreisförmig an. Bei „normaler" Zählweise geht das von 0 hoch bis 255, dann läuft es über und beginnt wieder bei 0 (Wrap-around).
Beim Zweierkomplement nehmen wir genau dieselben 256 Bitmuster und teilen den Kreis anders ein: die obere Hälfte (mit MSB = 0) ist positiv (0 bis 127). Die untere Hälfte (mit MSB = 1) wird als negativ interpretiert (-128 bis -1). Das Bitmuster 11111111 ist nicht 255, sondern -1:
Von 0 aus geht es links herum negativ runter (-1, -2, ... -128).
Beide Wege treffen sich „unten" bei -128 / +127 – dort ist die Wrap-around-Grenze.
4) Die Berechnungs-Regel: Bits flippen und plus 1
Soweit zur Theorie. In der Praxis brauchst du eine konkrete Methode, um eine negative Zahl ins Zweierkomplement umzurechnen. Die Standard-Regel in zwei Schritten:
- Schreib die positive Zahl in Binär auf (mit fester Bit-Breite, z.B. 8 Bit).
- Alle Bits invertieren (aus 0 wird 1, aus 1 wird 0) – das ist das sogenannte Einerkomplement.
- Plus 1 dazu addieren. Fertig – das ist die Zweierkomplement-Darstellung der negativen Zahl.
Beispiel: -7 in 8-Bit-Zweierkomplement. Erst die +7 als Binär: 00000111. Bits flippen: 11111000. Plus 1: 11111001. Das ist die Zweierkomplement-Darstellung von -7.
11111001 (= -7), flippe zu 00000110, plus 1 ergibt 00000111 = +7. Zurück!5) Warum funktioniert das? Die mathematische Intuition
Die Regel „flippen + 1" wirkt wie Hexerei. Tatsächlich steckt eine einfache Idee dahinter: für eine n-Bit Zahl gilt, dass x + (-x) = 0. In normaler Mathematik ist das trivial. In n-Bit-Arithmetik mit Wrap-around bedeutet es: -x ist die Zahl, die zu x addiert genau einen vollen Umlauf (also 2ⁿ) ergibt – und damit wieder 0 modulo 2ⁿ.
Praktisch heißt das: -x in n-Bit-Zweierkomplement = 2ⁿ - x. Bei 8 Bit also 256 - x. Für x=7: 256 - 7 = 249 = 11111001. Das ist dieselbe Zahl wie nach „flippen + 1". Die Regel ist nur ein cleverer Weg, diese Subtraktion ohne echte Subtraktion zu machen – nur durch Invertieren und Inkrementieren.
6) Addition und Subtraktion – Eleganz pur
Hier zeigt sich, warum das Zweierkomplement so verbreitet ist: Addition funktioniert mit negativen Zahlen genau wie mit positiven. Du brauchst keine Sonderfälle. Die CPU rechnet einfach Bit für Bit zusammen, und das Ergebnis stimmt automatisch.
Beispiel: 5 + (-3) in 8-Bit. Wir wollen das Ergebnis 2 erhalten.
-3 = 1111 1101 // Zweierkomplement von 3
─────────────────────────────────────────
Summe: (1)0000 0010 = +2 ✓
Das überschüssige Bit links („Carry-out") wird verworfen.
Übrig bleibt das korrekte Ergebnis im 8-Bit-Feld.
7) Overflow – wenn der Ring überläuft
Trotz aller Eleganz gibt es eine Falle: Overflow. Wenn das Ergebnis einer Rechnung außerhalb des darstellbaren Bereichs liegt, „wickelt es sich um" und gibt ein falsches Ergebnis. Beispiel in 8-Bit-Signed: 100 + 50 = 150. Aber 150 ist außerhalb des Bereichs (-128 bis +127)! Was passiert?
+50 = 0011 0010
─────────────────────────────────────────
Summe: 1001 0110 = -106 ✗ OVERFLOW!
Das MSB ist plötzlich 1 → wird als negativ interpretiert.
Mathematisch korrekt wäre 150, aber 150 passt nicht in 8 Bit signed.
Wir sind „über den Ring gerollt" und gelandet auf der negativen Seite.
8) Andere Vorzeichen-Darstellungen (historisch)
Damit du verstehst, warum sich gerade das Zweierkomplement durchgesetzt hat, ein kurzer Blick auf die Alternativen, die in den frühen Computern verwendet wurden:
9) Praktische Erkennungs-Regeln
Drei Faustregeln, mit denen du in der IHK-Prüfung schnell erkennst, was eine signed-Zahl bedeutet:
- MSB ist 0 → positiv. Wert wie unsigned ablesen (Stellenwerte addieren).
- MSB ist 1 → negativ. Wert: erst Bits invertieren und + 1 (oder umgekehrt: das Bitmuster ist
2ⁿ - |x|, also256 - bitwertbei 8 Bit ergibt den Betrag). - Alle 1en (z.B.
11111111) → -1. Egal wie viele Bits. Eine sehr nützliche Eselsbrücke.
Konkret bedeutet das: ein 32-Bit-Wert 0xFFFFFFFF als signed gelesen ist -1. Als unsigned gelesen ist es 4 294 967 295. Bei C/C++ und Java-Casts ist das eine häufige Fehlerquelle – Programme, die signed/unsigned verwechseln, produzieren spektakulär falsche Zahlen.
Zusammenfassung
Negative Zahlen werden in Computern fast immer im Zweierkomplement dargestellt. Das MSB (höchstwertige Bit) wird zum Vorzeichen-Bit: 0 = positiv, 1 = negativ. Wertebereich für n-Bit signed: -2ⁿ⁻¹ bis +2ⁿ⁻¹-1 (z.B. 8 Bit: -128 bis +127). Bildlich: ein Zahlenring, auf dem positive und negative Zahlen kreisförmig angeordnet sind. Berechnung -x: positive Zahl in Binär schreiben, alle Bits flippen, +1 dazu. Genial: Addition funktioniert mit positiven und negativen Zahlen exakt gleich – die CPU braucht keine Sonderfälle, ein einziger Addierer reicht. Achtung Overflow: wenn das Ergebnis außerhalb des Bereichs liegt, „rollt" es auf der falschen Seite des Rings durch und produziert falsche Werte (100 + 50 in 8-bit signed wird zu -106). Faustregeln: MSB=0 → positiv (normal ablesen), MSB=1 → negativ. 11111111 ist immer -1 (unabhängig von der Bitbreite). Historisch gab es Alternativen (Vorzeichen+Betrag, Einerkomplement), aber Zweierkomplement hat sich durchgesetzt, weil es nur eine Null hat und Addition/Subtraktion ohne Sonderfälle erlaubt. Nächste Lektion: Boolesche Algebra – die Grundoperationen UND, ODER, NICHT.
