• ベストアンサー

次の2進数の減算を2の補数を用いて計算せよ。

次の2進数の減算を2の補数を用いて計算せよ。 (1011)2 - (0101)2 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

コンピュータのベーシックな部分では足し算しか できません。減算、乗算、除算は勿論、ナシです。 それにデジタルだから、3.14なんてのも無い。 先ずは存在しないはずの減算の実現手段をどう やって行うかが、この問題の骨子ですね。 「11から5を引く」→「11に-5を足す」という 方法で解決します。それでは(+5)→(-5)をどう するか?これが「2の補数」というやり方です。 方法は「0と1を反対にし、1を足す」です。 -(0101)2 → +(????)2 0101の0と1を反転 → 1010 これに1を足す。 → 1011 つまり、????は1011 最初の問題は以下のように変換できます。 (1011)2 + (1011)2 これを計算すると、(10110)2になりますが、 コンピュータの入れ物(桁)には限界があります。 この場合は4桁しか入らない前提なので、先頭の1は 特に手当をしない限り捨てられます。つまり、後ろの (0110)しか残らないことになり、これが答です。

dis-_-ney
質問者

お礼

とてもわかりやすい回答ありがとうございました。 授業で習った通りにやると、(10110)2までは計算出来てたんですけど、あとあと考えると、10進数で計算すると6なのに、この答えだと、6にならない…と疑問でしょうがなかったんです(-_-;) 授業でも説明してくれなくて… 本当助かりました。

その他の回答 (4)

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.5

edomin7777 wあ・・・ミスったw 補数かww neg(w)Z80 情報処理2種の問題にこれがありましてねw 当時 2進法の10/100これがわからなかったw ま、関係ない話なのでごめんなさい

dis-_-ney
質問者

お礼

わざわざありがとうございます!! 情報処理2種とか難しそうですね… 頑張ってください($・・)/~~~

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.3

(0101)2の2の補数は(1011)2 ※2の補数は1の補数(1010)2+(0001)2 (1011)2+(1011)2=(10110)2 だけど、キャリーは無視するので(0110)2

dis-_-ney
質問者

お礼

右から5桁目の"1"は無視するんですね!! なるほど\(◎o◎)/ 回答ありがとうございました($・・)/~~~

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

#1さんの回答、答えは合っているけど2の補数は何処いっちゃった…。 (0101)2を2の補数表現で表すと、  ↓(反転させて) (1010)2  ↓(1を加えて) (1011)2 これを(1011)2に加える。  (1011)2 +(1011)2 ---------- (10110)2 最上位ビットは、桁あふれなので、答えは (0110)2

dis-_-ney
質問者

お礼

詳しい回答をありがとうございました!! (10110)2までは持っていけたんですけど、それからどうやればいいのかわからなかったんです(-_-;) ただ、無視すればよかったんですね☆ わかりました!! 授業でも説明なかったんで、とても助かりました($・・)/~~~

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.1

まったくなーうちらは他人のテストの回答者じゃないんだがなー 1011 0101でしょ? 最初に0桁目1-1=0 1010 -0100 んで、次のマイナスビットが2桁目0-1=-1 上位から補填して10-1=1 なので 0110 -0000 で答えは、0110または6だね OK?

dis-_-ney
質問者

お礼

2の補数使わなくても解けるんですね!! ありがとうございました($・・)/~~~

関連するQ&A