00000000
|
0
|
1
|
00000001
|
11111110
|
11111111
|
-1
|
2
|
00000010
|
11111101
|
11111110
|
-2
|
3
|
00000011
|
11111100
|
11111101
|
-3
|
126
|
01111110
|
10000001
|
10000010
|
-126
|
127
|
01111111
|
10000000
|
10000001
|
-127
|
128
|
10000000
|
01111111
|
10000000
|
-128
|
Wie man sieht, sind in der Zahl „-1“ alle Bits gesetzt. Soll eine vorzeichenbehaftete Zahl erweitert werden (z.B. von 8-Bit auf 16Bit), ohne seinen Wert zu ändern, genügt es deshalb nicht, einfach das oberste Bit zu setzen, falls die Zahl negativ ist. Es sind alle Bits des oberen Bytes zu setzen. Im folgenden Beispiel haben die linke und rechte Zahl jeweils den gleichen Wert (links in 8 Bit, rechts in 16 Bit):
negative Zahl: 11111010 11111111.11111010 = -6
positive Zahl: 00001000 00000000.00001000 = 8
Außerdem ist zu erkennen, dass für den Wert +128 in 8-Bit das oberste Bit gesetzt sein müsste, dies aber das Kennzeichen für negative Zahlen ist. Somit scheidet +128 aus und bleibt als größtmöglicher posiver Wert +127, als kleinstmöglicher negativer Wert -128. Vorzeichenbehaftete Zahlen in 2er-Komplementdarstellung haben demnach einen asymmetrischen Wertebereich: kleinster (negativer) Wert a=-2n-1, größtmöglicher (positiver) Wert a=2n-1-1.
|