01000111(2)-01101010(2)の計算を補数を用いて求める方法は

01101010を10010101に変更し1を加えて10010110に変更し

 01000111
+10010110

=11011101(2)で正しいでしょうか?

また答えを10進数に変更する方法を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

負数を2の補数表現で表した8ビットの固定小数点数表現で考えた場合ですね。


その計算方法で合っていると思いますよ。

ちなみに、答えを10進数に変更するには次のようにすればよいです。

11011101(2)の2の補数
=00100010(2)+1
=00100011(2)
=32+2+1
=35

答えの符号ビットは1なので-35になります。
    • good
    • 0

符号はMSBに付くという条件なら11011101で間違いありません。



10進数にするのでしたら、計算の始めで01101010を10010110にした時と逆の方法で11011101を計算すれば10進数に戻すのが楽ですよ。ただし計算結果として符号が消えていることを考慮してください。
    • good
    • 0

はい。

あってます。

それぞれを符号付き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で正しいですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング