2016-05-07 10 views
0

Wenn ich die Binärzahl 000000 in 2er Komplement umwandle bekomme ich 1s Kompliment (invertiert) = 111111 2er Kompliment (add +1) = hier laufe ich auf ein Problem, gibt das 000000 zurück und das 1 wird verworfen oder gibt das 1000000 zurück?Binär in 2er Kompliment

Vielen Dank im Voraus!

Antwort

0

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.