• 締切済み

2進数の計算について

01000111(2)-01101010(2)の計算を補数を用いて求める方法は 01101010を10010101に変更し1を加えて10010110に変更し  01000111 +10010110 =11011101(2)で正しいでしょうか? また答えを10進数に変更する方法を教えてください。

みんなの回答

回答No.3

負数を2の補数表現で表した8ビットの固定小数点数表現で考えた場合ですね。 その計算方法で合っていると思いますよ。 ちなみに、答えを10進数に変更するには次のようにすればよいです。 11011101(2)の2の補数 =00100010(2)+1 =00100011(2) =32+2+1 =35 答えの符号ビットは1なので-35になります。

noname#180098
noname#180098
回答No.2

符号はMSBに付くという条件なら11011101で間違いありません。 10進数にするのでしたら、計算の始めで01101010を10010110にした時と逆の方法で11011101を計算すれば10進数に戻すのが楽ですよ。ただし計算結果として符号が消えていることを考慮してください。

回答No.1

はい。あってます。 それぞれを符号付き8bit整数とするなら、 負の数が、 >01101010を10010101に変更し1を加えて10010110に変更 で求められるわけだよね。 11011101 の先頭(一番左)は1だから負の数。 11011100 1を引いて 00100011 NOTをとって読むと、2^5 * 1 + 2^1 * 1 + 2^0 * 1 = 35 よって求められた負の数は-35 実際元の式は71 - 106 = -35で正しいですね。