私はこの問題を解決するための最も簡単な方法は、小さなステップにそれをくちばしすることだと思います。
私の最初の仮定は、あなたが解決しようとしているということである15(1111(バイナリ)) - 18(10010(バイナリ))私はあるmethod of complementsである2の補数で減算を行う最も簡単な方法を見つける
正の15(+15 - (+18))から正の18を引いてみる代わりに、負の18を正の15(+15 +(-18))に追加します。これは同じ結果をもたらしますが、2つの補数では簡単です(数値システムに負の数がない場合はこれを行うことはできません)。
したがって、15と-18とconvert them into two's complement numbersを使用する必要があります。 18ビットは5ビットで2進数で表されるので、2の補数で-18を表すには少なくとも6 6ビットを使用する必要があります。これらのビットは使用して反転したビットに1を追加し、その後101101(0への1秒に0と1を回して)、私たちは2の補数010010フリップで18を取る2の補数に-18を変換するには
binary addition
1 (carried digits)
101101 (-19 (flipped 18))
+ 000001 (1)
_________
101110 (-18)
それが今、-18(101110)001111
として数字の同じ量になるまで
は、我々はバイナリ(1111)に15を取ると、我々は左側にゼロを追加し、2の補数に15を変換するには、二つの中に我々は両方の数字私たちはそれらを一緒に追加することができます補完することができますbinary addition
111 (carried digits)
001111 (15)
+ 101110 (-18)
_________
111101 (-3)
これは正解である-3の2の補数を与えます(15-18 = -3)。
あなたは、私がhttp://en.wikipedia.org/wiki/Two%27s_complementを読んで示唆twos complement wiki page
見て約2の補数を学ぶことができます。 –