Es verwirft die 1
. Die Bedingung ist ähnlich der Arithmetic Overflow.
Die Stärke des Zweierkomplements ist, dass es uns hilft, eine binäre Repräsentation beizubehalten, wenn vorzeichenbehaftete Zahlen berücksichtigt werden, da in der Mathematik der Wert 0
der Wert von -0
ist. Wenn wir ein ganzes Bit nur für das Vorzeichen aufgeben müssen, würde 0000
in einem 4-Bit-Wort 0
bedeuten und 1000
würde -0
bedeuten, was eine Darstellung verschwendet. Das Zweierkomplement hilft dabei, dies zu beseitigen. Wenn wir 4-Bit-Worte annehmen: val -val bits of val two's complement bits of -val (1's complement + 1) 0 0 0000 0000 (1111+0001) 1 -1 0001 1111 (1110+0001) 2 -2 0010 1110 (1101+0001) 3 -3 0011 1101 (1100+0001) ... 7 -7 0111 1001 (1000+0001) 8 -8 (no rep) 1000 (0111+0001)
(beachten Sie, dass für -8
Sie jemandes haben Komplement 8
in einer unsigned Weise, das heißt 8 = 1000
und damit sein Einerkomplement ist 0111
).
So gewinnen Sie eine Darstellung für -8
von 0
machen und -0
haben das gleiche Bitmuster, das heißt 0000
. Damit können wir für n
Bits alle Integerwerte zwischen -2^(n-1)
bis 2^(n-1)-1
darstellen.