- ベストアンサー
次の2進数の減算を2の補数を用いて計算せよ。
次の2進数の減算を2の補数を用いて計算せよ。 (1011)2 - (0101)2 お願いします。
- dis-_-ney
- お礼率97% (48/49)
- その他([技術者向] コンピューター)
- 回答数5
- ありがとう数18
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
コンピュータのベーシックな部分では足し算しか できません。減算、乗算、除算は勿論、ナシです。 それにデジタルだから、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)しか残らないことになり、これが答です。
その他の回答 (4)
- hanmemomo
- ベストアンサー率35% (205/580)
edomin7777 wあ・・・ミスったw 補数かww neg(w)Z80 情報処理2種の問題にこれがありましてねw 当時 2進法の10/100これがわからなかったw ま、関係ない話なのでごめんなさい
お礼
わざわざありがとうございます!! 情報処理2種とか難しそうですね… 頑張ってください($・・)/~~~
- buriburi3
- ベストアンサー率44% (353/792)
(0101)2の2の補数は(1011)2 ※2の補数は1の補数(1010)2+(0001)2 (1011)2+(1011)2=(10110)2 だけど、キャリーは無視するので(0110)2
お礼
右から5桁目の"1"は無視するんですね!! なるほど\(◎o◎)/ 回答ありがとうございました($・・)/~~~
- edomin7777
- ベストアンサー率40% (711/1750)
#1さんの回答、答えは合っているけど2の補数は何処いっちゃった…。 (0101)2を2の補数表現で表すと、 ↓(反転させて) (1010)2 ↓(1を加えて) (1011)2 これを(1011)2に加える。 (1011)2 +(1011)2 ---------- (10110)2 最上位ビットは、桁あふれなので、答えは (0110)2
お礼
詳しい回答をありがとうございました!! (10110)2までは持っていけたんですけど、それからどうやればいいのかわからなかったんです(-_-;) ただ、無視すればよかったんですね☆ わかりました!! 授業でも説明なかったんで、とても助かりました($・・)/~~~
- hanmemomo
- ベストアンサー率35% (205/580)
まったくなーうちらは他人のテストの回答者じゃないんだがなー 1011 0101でしょ? 最初に0桁目1-1=0 1010 -0100 んで、次のマイナスビットが2桁目0-1=-1 上位から補填して10-1=1 なので 0110 -0000 で答えは、0110または6だね OK?
お礼
2の補数使わなくても解けるんですね!! ありがとうございました($・・)/~~~
関連するQ&A
- 【初心者から質問】 2進数の減算について
学校で「アセンブラ言語」について学び始めました。 「2進数の減算」が分かりません。 ・減算は負の数の加算でおこなう。 ・負の数は2の補数であらわす。 ・補数を導き出すには「ビット反転」と「+1」する。 この3つのルールのことは何となくわかります。 では、 0110 1001 -0010 1100  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ の計算の仕方を教えていただきたいです。 0110 1001 -0010 1100  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1101 0011 (ビット反転) +1101 0100 (+1する)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 自分でやってみましたが、この先がわかりません。 (つまり負の数を加算する部分が分からないです) この先の答えと、計算方法を教えてください。 よろしくおねがいします。
- ベストアンサー
- その他(プログラミング・開発)
- 2の補数を使った計算
ある計算機があり、2の補数を「ビット反転して1を加算する」方法とするときに10進数の計算「100-80」を2の補数を使って計算する場合は16進数で表すと幾つと幾つの加算になるのでしょうか?? 2の補数を使うというのがよくわからないのですが・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- 補数について質問です。「次の10進数を8ビットの2の補数に変換せよ」(
補数について質問です。「次の10進数を8ビットの2の補数に変換せよ」(1)-111 まず絶対値をとり111にする。次に111を2進数で表す。0001 0001 0001となりますが、8ビットの2の補数に直すため0001 0001 0001の部分は8桁にしなくてはいけませんが、12桁になってしまいます。こういう場合どうすればいいのですか?
- ベストアンサー
- その他(学問・教育)
- 2の補数表現2進数が表す10進数は?、
次の2の補数表現の2進数が表す10進数はいくらか? 1111 1111 1111 1111 1111 1111 1111 1111 という問題があるのですが、 これを解くと、まず、上のビット列は2の補数表現なのだから、これはマイナスですよね?そして、次にビット列を2の補数を求めるやり方でやると元の数がわかりますよね(この辺がいまいち解っていない)? という事は全ビットを0にして、最下位ビットに1を 足せばいいから0000 0000 0000 0000 0000 0000 0000 0000 + 1 =0000 0000 0000 0000 0000 0000 0000 0001 となります。10進数だと 1を表すから答えはー1という事になるのでしょうか?お願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- 補数と進数とビット
明日テストなのですお願いします 次の10進数を2の補数を利用して()内のビット数で2進数に直して下さい。 問1 -6(4ビット) 問2 -102(8ビット) 10進数から2進数への直し方はわかります。-の補数がよくわかりません。 お願いします
- ベストアンサー
- その他(学問・教育)
- 16進数の補数の求め方
16進数の場合(ADFの補数を求める) 16の補数 1000 - ADF = 521 15の補数 FFF - ADF = 520 の求め方が分かりません。 是非、教えてください。
- ベストアンサー
- その他([技術者向] コンピューター)
- 2の補数について
情報処理試験(基本情報)用の考え方という前提でお聞きします。 「負数を2の補数形式で表現する2進数の計算で・・・・」という問題がよくあります。 この問題文の中で「10101」などの数(これは5ビットの符号付2進数とします) として記述されているものは、もう2の補数になっていると考えていいのでしょうか? それともこれを、今から2の補数に直すのですか? (もし直すのであれば、最上位ビットの符号が変わるのでしょうか?) 違う言い方をしてみますと「A」の2の補数が「-A」だとしたら、 「-A」の2の補数は「A」になるんでしょうか? それとも「そんな表現はない。-Aの時点ですでに2の補数だ」という ことになるのでしょうか? 解りにくくてすみません。
- ベストアンサー
- その他(プログラミング・開発)
お礼
とてもわかりやすい回答ありがとうございました。 授業で習った通りにやると、(10110)2までは計算出来てたんですけど、あとあと考えると、10進数で計算すると6なのに、この答えだと、6にならない…と疑問でしょうがなかったんです(-_-;) 授業でも説明してくれなくて… 本当助かりました。