logo

1の補数表現と2の補数表現の違い 手法

前提条件 – 負の 2 進数の表現

1の補数 2 進数の は、その中のすべてのビットを切り替えることによって得られる別の 2 進数です。つまり、0 ビットを 1 に、1 ビットを 0 に変換します。例:



Let numbers be stored using 4 bits 1's complement of 7 (0111) is 8 (1000) 1's complement of 12 (1100) is 3 (0011)>

2の補数 2 進数の 1 は、2 進数の 1 の補数に 1 を加えたものです。例:

Let numbers be stored using 4 bits 2's complement of 7 (0111) is 9 (1001) 2's complement of 12 (1100) is 4 (0100)>

これらの表現は、符号付き数値に使用されます。

主な違い 1 の補数と 2 の補数 1 の補数には 0 (ゼロ)、つまり正のゼロ (+0) である 00000000 と負のゼロ (-0) である 11111111 の 2 つの表現があるということです。一方、2 の補数では、ゼロの表現は 00000000 (0) の 1 つだけです。11111111 (-1) に 1 を加算すると、9 ビット長の 100000000 が得られるからです。 8 ビットのみが許可されるため、左端のビットは破棄 (またはオーバーフロー) され、正のゼロと同じ 00000000 (-0) が残ります。これが、2' の補数が一般的に使用される理由です。



もう 1 つの違いは、1 の補数を使用して数値を加算するときに、最初に 2 進加算を行ってから、エンドアラウンド キャリー値を加算することです。ただし、2 の補数にはゼロの値が 1 つだけあり、キャリー値は必要ありません。

n ビット数の 1 の補数の範囲は -2 からですn-1-1から2n-1-1 ですが、n ビットの 2 の補数の範囲は -2 からですn-12へn-1-1。

性能試験

2つありますn-11 の補数と 2 の有効な数値n2 の補数の有効な数値。



表形式での 1 の補数表現と 2 の補数表現の違い:

基準 1の補数 2の補数
意味 2 進数の 1 の補数は、すべてのビットを反転することで得られます。 2 進数の 2 の補数は、数値の 1 の補数に 1 を加算することで得られます。
nビットで表現できる値の範囲 -2^(n-1) + 1 から 2^(n-1) – 1 -2^(n-1) から 2^(n-1) – 1
ゼロの表現の数 2 つの方法 (すべて 0 とすべて 1) で表現できます。 一方向 (すべて 0) でのみ表現できます。
正と負の数の加算 符号なし 2 進加算と同じです。 符号なし 2 進加算と同じです。
数値の引き算 大きい数値から小さい数値を減算し、結果に符号ビットを追加します。 2 進加算を使用して、負の数を正の数に加算します。