/ Zahlensysteme & Kodierung

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
01 · Eingabe

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.

Lösen für
Min = 2^(n 1)
Bit

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

Formel Wertebereich
Min = −2^(n − 1)
Max =  2^(n − 1) − 1

Anzahl darstellbarer Werte: 2^n

Die Variablen

SymbolBedeutungEinheitErklärung
nBitbreiteBitAnzahl Bits (z. B. 8, 16, 32).
MinMinimumKleinster darstellbarer Wert.
MaxMaximumGrößter darstellbarer Wert.

Minimal-Beispiel

Wertebereich int8:

Rechnung int8
Min = −2^7   = −128
Max =  2^7 − 1 = 127
Bereich: −128 … 127   (256 Werte)

Praxis-Beispiele

Beispiel 1 — Übersicht gängiger Typen

TypnMinMax
int88−128127
int1616−32 76832 767
int3232−2 147 483 6482 147 483 647
int6464−9 223 372 036 854 775 8089 223 372 036 854 775 807

Beispiel 2 — Overflow-Falle

Was passiert bei int8 a = 127; a = a + 1;?

Rechnung Überlauf
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?

Rechnung Bitbreite
Max benötigt: 100 000
n = log₂(100 000 + 1) + 1
  ≈ 16,61 + 1
  ⇒ 18 Bit (oder pragmatisch int32)