みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

(1011)2 - (0101)2

お願いします。

投稿日時 - 2010-05-19 01:50:19

QNo.5905298

すぐに回答ほしいです

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

コンピュータのベーシックな部分では足し算しか
できません。減算、乗算、除算は勿論、ナシです。
それにデジタルだから、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)しか残らないことになり、これが答です。

投稿日時 - 2010-05-19 11:29:12

お礼

とてもわかりやすい回答ありがとうございました。

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

本当助かりました。

投稿日時 - 2010-05-29 21:44:35

ANo.4

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

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

投稿日時 - 2010-05-20 19:08:28

お礼

わざわざありがとうございます!!

情報処理2種とか難しそうですね…
頑張ってください($・・)/~~~

投稿日時 - 2010-05-29 21:49:01

ANo.3

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

投稿日時 - 2010-05-19 05:13:32

お礼

右から5桁目の"1"は無視するんですね!!
なるほど\(◎o◎)/

回答ありがとうございました($・・)/~~~

投稿日時 - 2010-05-29 21:55:26

ANo.2

#1さんの回答、答えは合っているけど2の補数は何処いっちゃった…。

(0101)2を2の補数表現で表すと、
 ↓(反転させて)
(1010)2
 ↓(1を加えて)
(1011)2
これを(1011)2に加える。
 (1011)2
+(1011)2
----------
(10110)2
最上位ビットは、桁あふれなので、答えは
(0110)2

投稿日時 - 2010-05-19 05:10:54

お礼

詳しい回答をありがとうございました!!

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

投稿日時 - 2010-05-29 22:01:09

ANo.1

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

投稿日時 - 2010-05-19 02:33:30

お礼

2の補数使わなくても解けるんですね!!

ありがとうございました($・・)/~~~

投稿日時 - 2010-05-29 22:02:11

あなたにオススメの質問