Signierte Zahlendarstellungen
Signed Number-Darstellungen 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 es keine Zustände mehr gibt, mit denen die negative Zuweisung dargestellt werden kann. Es ist nicht möglich, einfach "off" für Minus und "on" für Plus zu verwenden, da der Computer nicht wissen könnte, ob es sich um eine Ziffer oder ein Vorzeichen handelt.
Um dieses Problem zu lösen, erfanden Computerdesigner zwei Methoden zur Speicherung negativer Binärzahlen: Vorzeichen und Betrag und das 2er-Komplement. Diese erzeugen alternative Darstellungen für vorzeichenbehaftete Zahlen.
Zeichen und Größenordnung
Vorzeichen und Magnitude funktioniert, indem das höchstwertige Bit (MSB - die erste Ziffer) in eine 1 geändert wird, wenn die Zahl negativ ist, und die Zahl z.B. um eins verringert wird:
0000 0010 (2)
wird zu...
1000 0010 (-2)
Diese Methode zur Speicherung negativer Binärzahlen funktioniert nicht, weil
- Binäre Arithmetik wird nicht funktionieren.
- Wir müssen zunächst wissen, welchen Speichermechanismus der Compiler einer bestimmten Sprache verwendet.
1er-Komplement
1's Complement funktioniert, indem z.B. die 1 gegen die 0 und die 0 gegen die 1 getauscht werden:
0000 0010 (2)
wird zu...
1111 1101 (-2)
Ähnlich wie die Vorzeichen- und Magnitudenmethode kann diese leicht als negative Zahl definiert werden, da ihr höchstwertiges Bit 1 ist.
2er-Komplement
Das 2er-Komplement ist eine schwierigere Art der Speicherung von Negativen. Es gibt drei Schritte dafür:
- Suchen Sie die positive Binärzahl (z.B. 8base 10 = 0000 1000base 2).
- Tauschen Sie die 1 gegen 0 und die 0 gegen 1 (z.B. 0000 1000base 2 wird 1111 0111base 2).
Dies ist bekannt als "die Bits umdrehen" oder die Anwendung des logischen NICHT auf die ursprüngliche Basis-2-Darstellung.
- Fügen Sie 1 hinzu (z.B. 1111 0111Basis 2 + 1Basis 2 = 1111 1000Basis 2).
Diese Methode ist beliebt, weil:
- Es ist wie Vorzeichen und Größe; eine negative Zahl beginnt mit einer 1 und eine positive Zahl mit einer 0.
- Die binäre Arithmetik wird funktionieren.
- Es gibt nur einen Wert für 0 (0000 0000base 2).