Vorzeichenbehaftete Binärdarstellungen werden verwendet, um das Problem der Darstellung negativer Ganzzahlen in Binärform zu lösen. Das Problem beim Versuch, das negative Vorzeichen (-) einer Binärzahl zu speichern, besteht darin, dass einzelne Bits sowohl als Ziffern (Magnitude) als auch als Vorzeichen interpretiert werden könnten. Es ist daher nicht ausreichend, einfach ein Bit als „Minus = 1, Plus = 0“ zu verwenden, ohne Regeln festzulegen, wie arithmetische Operationen und Vergleiche dann funktionieren sollen.

Computerdesigner haben deshalb mehrere Methoden entwickelt, zwei davon sind besonders gebräuchlich: Vorzeichen und Betrag (Sign-and-Magnitude) und das Zweierkomplement. Beide liefern alternative Darstellungen für vorzeichenbehaftete Zahlen, unterscheiden sich aber in Wertebereich, Null-Darstellung und in der Art, wie arithmetische Operationen ausgeführt werden.

Vorzeichen und Betrag (Sign-and-Magnitude)

  • Aufbau: Das höchstwertige Bit (MSB) ist das Vorzeichen (0 = positiv, 1 = negativ). Die restlichen Bits kodieren die absolute Größe (Betrag) in normaler Binärform.
  • Beispiel (8 Bit):
    +13 = 0 0001101 -13 = 1 0001101
  • Eigenschaften:
    • Es gibt zwei Darstellungen für Null: +0 (000...0) und −0 (100...0).
    • Der darstellbare Bereich bei n Bits ist von −(2^{n-1}−1) bis +(2^{n-1}−1).
    • Additionen und Subtraktionen sind komplizierter, weil Vorzeichen und Betrag getrennt behandelt werden müssen (je nach Vorzeichen evtl. Betrag subtrahieren statt addieren).

Zweierkomplement

  • Aufbau und Interpretation: Bei n Bits hat das MSB ein negatives Gewicht (−2^{n-1}), die übrigen Bits haben positive Gewichte. Das ermöglicht eine einheitliche Interpretation aller Bitmuster als ganze Zahlen.
  • Darstellung negativer Zahlen: Man bildet das Zweierkomplement der positiven Zahl, typischerweise durch Invertieren aller Bits und dann Addieren von 1. Alternativ kann man rechnen: Wert = 2^n − |x| (für negative x).
  • Beispiel (8 Bit):
    +13 = 00001101 Invertieren = 11110010 +1 = 11110011  → −13
  • Eigenschaften:
    • Es gibt genau eine Darstellung für Null (000...0).
    • Der darstellbare Bereich ist bei n Bits von −2^{n-1} bis 2^{n-1}−1 (ein größerer negativer Bereich als bei Sign-and-Magnitude).
    • Addition und Subtraktion können mit derselben Hardware wie für unsignierte Zahlen durchgeführt werden; Überlaufbehandlung unterscheidet sich geringfügig und ist leicht erkennbar.
    • Sign-Extension (Vergrößern der Wortbreite) erfolgt durch Auffüllen mit Kopien des Vorzeichenbits (Vorzeichen-Bit nach links fortsetzen), sodass der numerische Wert erhalten bleibt.

Vergleich, Überlauf und praktische Hinweise

  • Warum meist Zweierkomplement? Zweierkomplement ist in moderner Hardware bevorzugt, weil arithmetische Operationen einfacher zu realisieren sind, weil nur eine Null existiert und weil der negative Wertebereich etwas größer ist.
  • Überlauf-Erkennung bei Addition (Zweierkomplement): Tritt auf, wenn zwei Operanden gleichen Vorzeichens addiert werden und das Ergebnis ein anderes Vorzeichen hat. Ein einfacher Test ist: (Carry in Signbit) xor (Carry out Signbit) oder prüfen, ob das Ergebnis ein Vorzeichen hat, das nicht zu den Operanden passt.
  • Vorzeichen erkennen: Bei beiden Systemen zeigt das MSB an, ob die Zahl negativ ist (MSB = 1). Die Interpretation der restlichen Bits unterscheidet sich aber.
  • Konvertierungstipps:
    • Dezimal → Zweierkomplement (negativ): Betrag in Binär, alle Bits invertieren, +1 addieren.
    • Zweierkomplement → Dezimal: Wenn MSB = 0, normale Umwandlung; wenn MSB = 1, entweder Zweierkomplement zurückbilden (invertieren +1) und das Ergebnis negativ setzen oder direkt mit Gewichten rechnen (−2^{n-1} + Rest).

Kurze Erwähnung: Einserkomplement

Als Zwischenform existiert noch das Einserkomplement (ones' complement), bei dem negative Zahlen durch Invertieren aller Bits dargestellt werden. Es hat jedoch ebenfalls zwei Null-Darstellungen (+0 und −0) und wurde größtenteils zugunsten des Zweierkomplements aufgegeben.

Zusammenfassend: Vorzeichen & Betrag ist konzeptuell einfach (Vorzeichenbit + Betrag) hat aber Nachteile bei Null und Arithmetik. Zweierkomplement ist die praktischere und heute meistgenutzte Methode, da sie eine eindeutige Null, einen größeren negativen Bereich und einfacher zu implementierende Rechenoperationen bietet.