コンテンツ
2の補数は、負の2進数を表すシステムです。また、減算の実装にも使用できます。「B」から「A」を減算し、「A」を負の数に変換して加算します。これにより、加算および減算用のハードウェアを構築する必要がなくなります。 2進数を2の補数に(またはその逆に)変換するシステムでは、負の数の表現を単純化して減算を行うことができます。 2の補数から10進数に変換するには、2つのステップが必要です。最初に2進数に変換し、次に2進数から10進数に変換します。
ステップ1
10進数を連続して2で割り、残りを保存して2進数として表現します。たとえば、13をバイナリに変換するには、13を2で割ると6が得られ、最初の余りは1になります。6を2で割ると3が得られ、2番目の余りは0になります。3で割ると、1と3が得られます。余りは1です。1を2で除算して0と余りを1にします。余りは、生成の逆順で1101と10進数の基数13 = 2進数1101です。2進数は、私が生成したものよりも簡単に認識できます。それ。右から、d X 2 ^ pを追加します。ここで、「d」は2進数で、「p」は位置なので、1101 =(1 X 1)+(0 x 2)+(1 x 4)となります。 +(1 x 8)= 13。
ステップ2
バイナリから2の補数に変換し、ビットを反転して1を追加します。7のバイナリは00000111になり、負の7は11111001になります。これは、反転ビットを含む00000111が11111000および11111000 + 1 = 11111001であるためです。左端の桁は信号。正の数の符号ビットはゼロで、負の数の符号ビットは1です。2の補数の良い点の1つは、バイナリへの変換が、バイナリから補数への変換と同じプロセスで正確に行われることです。 2つの。たとえば、2の補数を-7から7バイナリに変換するには、桁を反転させて1を加えます。11111001反転は、00000110および00000110 + 1 = 00000111です。
ステップ3
2の補数から2の10進数に変換:2の補数を2進数に、2進数の後に10進数に変換。たとえば、2-11101011-に加えて-21を10進数に変換するには、最初にバイナリに変換してから、2進数を10進数に変換します。 11101011を反転して00010100を取得し、1を追加して00010101(バイナリで21)を取得します。次に、位置表記を使用してバイナリをデコードし、(0 X 128)+(0 X 64)+(0 X 32)+(1 X 16)+(0 X 8)+(1 X 4)+(0 X 2)+(1 x 1)= 21。