06 · Ganze Zahlen mit acht Bits
Wie speichert man ein Minus?
Im Zweierkomplement reicht der Wertebereich von −128 bis 127. Steht vorne eine 1, ist die Zahl negativ.
Der Trick: invertieren + 1
Schreibe den Betrag als acht Bits. Vertausche dann jede 0 mit einer 1 und jede 1 mit einer 0. Addiere zum Schluss 1.
- 1 · Betrag binär schreiben
- 2 · Alle Bits invertieren
Jede 0 wird 1, jede 1 wird 0.
- 3 · Eins addieren
Zurücklesen: Das erste Bit zählt −128
Die Stellenwerte sind −128, 64, 32, 16, 8, 4, 2, 1. Addiere die Stellenwerte der gesetzten Bits:
Bei −128 gibt es eine Besonderheit: Der Betrag 128 lässt sich als Bitmuster schreiben, liegt aber außerhalb des positiven 8-Bit-int-Bereichs. Deshalb ergibt erneutes Invertieren + 1 wieder 10000000. Als vorzeichenbehafteter int bleibt das −128.
Merke: Nur das erste Bit umzuschalten reicht nicht. Im Zweierkomplement heißt Vorzeichen wechseln: alle Bits invertieren + 1. Wir behalten immer nur acht Bits; ein Übertrag ganz links entfällt.
Im Speicher ausprobieren