Zweierkomplement Wertebereich
Darstellbarer Wertebereich im Zweierkomplement mit n Bits: Min = −2^(n − 1), Max = 2^(n − 1) − 1. Beispiel n = 8: −128 bis 127.
Zweierkomplement Wertebereich berechnen
Darstellbarer Wertebereich im Zweierkomplement mit n Bits: Min = −2^(n − 1), Max = 2^(n − 1) − 1. Beispiel n = 8: −128 bis 127.
- Min — Minimum
- Max — Maximum
- n — Bitbreite
Worum geht es?
Bei n Bit Zweierkomplement gilt: das höchstwertige Bit ist das Vorzeichenbit. Damit lassen sich 2^n verschiedene Werte unterscheiden — die Hälfte negativ, die andere Hälfte nicht-negativ. Wichtige Eigenheit: Der Bereich ist leicht asymmetrisch, weil die Null zur positiven Seite zählt. Es gibt also einen negativsten Wert ohne zugehöriges positives Gegenstück.
Beispiel int8: −128 hat keine Entsprechung +128 — denn 128 würde in 8 Bit als 10000000₂ interpretiert, was wiederum −128 wäre.
Die Formel
Min = −2^(n − 1)
Max = 2^(n − 1) − 1
Anzahl darstellbarer Werte: 2^nDie Variablen
| Symbol | Bedeutung | Einheit | Erklärung |
|---|---|---|---|
| n | Bitbreite | Bit | Anzahl Bits (z. B. 8, 16, 32). |
| Min | Minimum | — | Kleinster darstellbarer Wert. |
| Max | Maximum | — | Größter darstellbarer Wert. |
Minimal-Beispiel
Wertebereich int8:
Min = −2^7 = −128
Max = 2^7 − 1 = 127
Bereich: −128 … 127 (256 Werte)Praxis-Beispiele
Beispiel 1 — Übersicht gängiger Typen
| Typ | n | Min | Max |
|---|---|---|---|
| int8 | 8 | −128 | 127 |
| int16 | 16 | −32 768 | 32 767 |
| int32 | 32 | −2 147 483 648 | 2 147 483 647 |
| int64 | 64 | −9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 |
Beispiel 2 — Overflow-Falle
Was passiert bei int8 a = 127; a = a + 1;?
127 + 1 in 8 Bit:
0111 1111
+ 0000 0001
= 1000 0000 = −128 (im Zweierkomplement)
Ergebnis: Überlauf von Max nach Min.Beispiel 3 — Bitbreite aus Anforderung
Du brauchst Werte bis ±100 000. Welche Bitbreite?
Max benötigt: 100 000
n = log₂(100 000 + 1) + 1
≈ 16,61 + 1
⇒ 18 Bit (oder pragmatisch int32)