- ベストアンサー
計算問題
Assume 8-bit binary 2's compliment numbers! 46-21= -16-52= Assume 16-bit binary 2's compliment numbers! ACh + FFh= FFFFh + 10= このような問題はどのようにして解けばよいのでしょうか?もしくは参考になるサイトなどはありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最初の問題は、8ビットの2の補数表記で計算結果を表す問題です。この表記では、10進数で -127(=-2^7+1)~128(=2^7) まで表すことができます。 http://ja.wikipedia.org/wiki/2%E9%80%B2%E6%95%B0#.E6.A9.9F.E5.99.A8.E3.81.A7.E3.81.AE.E8.B2.A0.E3.81.AE.E6.95.B0.E3.81.AE.E6.89.B1.E3.81.84 http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0 46-21=25 --2進数化-→ 19h -16-52=-68 --補数-→ -68+256=188 --2進数化-→ BCh 次の問題は、16ビットの補数表記で計算結果を表す問題です。この表記では、10進数で -32767(=-2^15+1)~32768(=2^15) まで表すことができます。 ACh + FFh= 01ABh FFFFh + 10= FFFFh + 0Ah= 0009h
その他の回答 (2)
- info22
- ベストアンサー率55% (2225/4034)
#2です。 hは16進を表す記号で「hexa-decimal」の頭文字をとったものです。
- info22
- ベストアンサー率55% (2225/4034)
サイトは他人に探させるのでなく自分で探して下さい。 +46=00101110 +21=00010101 -21=11101010+1=11101011 46-21=46+(-21)= 00101110+ 11101011= 00011001…Ans. これは10進では25(=46-21)ですね。 8ビットの計算ですので 8ビット目から9ビット目への桁上げが無視します。 同様に +16=00010000 -16=11101111+1=11110000 +52=00110100 -52=11001011+1=11001100 (-16)+(-52)= 11110000+ 11001100= 10111100…Ans. これは -(10111100)=01000011+1=01000100=68 だから 10111100=-68(=-16-52)で合っていますね。 ACh+FFh= 0000 0000 1010 1100+ 0000 0000 1111 1111= 0000 0001 1010 1011…Ans. =01ABh >FFFFh + 10= FFFFh + 10h= の間違いでは? FFFFh=1111 1111 1111 1111(2の補数法では「-1」のことです。) 10h=0000 0000 0001 0000(10進の16のこと) ですから上記をまねてやってみて下さい。 答えは 0000 0000 0000 1111 で000Fh=Fh=15(=-1+16)ですね。 #昔、ブール代数とか計算機工学の中で上記の計算を習った気がします。
お礼
分かりやすい、解答をありがとうございました。
お礼
25を二進数化するとなぜ19hになるのですか?又hは十六進数っていう意味ですか?