??????
??????
??????
??????
??????

内容

これまでのところ、主に正の整数を見てきました。次に、負の整数についても説明します。これについて話すとき、私たちは簡単な解決策を見つけることができます。数学のように、数字の先頭に+または–を追加する代わりに、0または1を追加します。しかし、ここにはある種の問題があります。

最初のビットに0または1を追加すると、問題が発生する傾向があります。つまり、ゼロには2つの値があるため、これが最初に発生します。実際にはそれほど悪くない少しの非効率性です。それはほんの1ビット失われているからですが、本当の問題は足し算や引き算をしているときに起こります。ゼロの値が2回あるからです。 0の補数の場合、0000と1000があるため、1を1000に追加すると、0000になります。これは、0 + 1 = 0を意味します。

この問題を克服するために、任意の正の整数の1番目と2番目の補数と呼ばれるものを実行します。 1の補数は、数値のすべての値を反転する場合です。

その場合、0000は1111になり、10110は01001になります。非常に簡単でシンプルです。しかし、1の補数を実行する場合も同じ問題が発生するため、2の補数と呼ばれる処理を実行します。これは、反転値に1を加算するときです。したがって、たとえば、次のようになります。

番号:10011

1の補数:01100

秒の補数:01101

通常、正の数はそのまま保存され、負の数は2の補数として保存されます。