ここから本文です

[削除問題回答] 回答なやんで出来た~・・・と思ったら質問削除されていました。...

猫の財布さん

2019/8/1703:17:36

[削除問題回答]

回答なやんで出来た~・・・と思ったら質問削除されていました。第3弾です。

(1)45と55を16ビットの2進数の補数で表現しましょう。

(2)45+55を16ビットの2進数の補数で計算しましょう。
(3)55-45を16ビットの2進数の補数で計算しましょう。
(4)45-55を16ビットの2進数の補数で計算しましょう。

(1)
45=2⁵+2³+2²+1
55=2⁵+2⁴+2²+2+1
ですから
45(10)=0000_0000_0010_1101(2)
55(10)=0000_0000_0011_0111(2)
となります。

(2)45+55

二進数そのまま計算します。

10進数でいうところの一の位から計算します。
2つの数の計算規則はその桁の組合せ(0,0)(0,1)(1,0)(1,1)の4つです。
(0,0)では勿論0
(0,1)(1,0)では勿論1
(1,1)では0となり、一つ上位の位に1加算されます。
その上位の数の組合せで
(0,0)なら、上位の位は1
(0,1)(1,0)なら、上位の位は0でさらに上の位に1加算されます。
(1,1)なら、上位の位は1、またさらに上の位に1加算されます。

45(10)=0000_0000_0010_1101(2)
55(10)=0000_0000_0011_0111(2)
45+55=0000_0000_0110_0100(2)
となります。
100(10)=2⁶+2⁵+2²となりますから一致しています。

(3)55-45
ー45を2の補数16ビットで表現するのは全て0と1を反転させて1加えることをします。
45(10):=0000_0000_0010_1101(2)
ー45(10)=1111_1111_1101_0011(2)
となります。これと55を『加える』答えになります。規則は(2)と同じです。

55(10):=0000_0000_0011_0111(2)
ー45(10)=1111_1111_1101_0011(2)
55-45:=0000_0000_0000_1010(2)
2³+2=10で一致ですね。

(4)45-55
55(10):=0000_0000_0011_0111(2)
ー55(10)=1111_1111_1100_1001(2)
となります。足し算の交換法則は同じです。
ー55(10)=1111_1111_1100_1001(2)
45(10):=0000_0000_0010_1101(2)
45-55:=1111_1111_1111_0110(2)
1を引き0と1をひっくり返すと
0000_0000_0000_1010(2)
つまり10となり上の結果がー10と判ります。

10進数に直して計算してから直すのもいいですが、結構2進数では簡単なことやっているんですね。・・・って質問消さないで~(;o+)

閲覧数:
42
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

zxc********さん

2019/8/2111:35:18

それは残念です。

質問した人からのコメント

2019/8/21 13:38:03

お慰めありがとうございます。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる