• ベストアンサー

計算問題

Assume 8-bit binary 2's compliment numbers! 46-21= -16-52= Assume 16-bit binary 2's compliment numbers! ACh + FFh= FFFFh + 10= このような問題はどのようにして解けばよいのでしょうか?もしくは参考になるサイトなどはありますか?

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

  • ベストアンサー
  • Mr_Holland
  • ベストアンサー率56% (890/1576)
回答No.1

 最初の問題は、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

Balzary
質問者

お礼

25を二進数化するとなぜ19hになるのですか?又hは十六進数っていう意味ですか?

その他の回答 (2)

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.3

#2です。 hは16進を表す記号で「hexa-decimal」の頭文字をとったものです。

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

サイトは他人に探させるのでなく自分で探して下さい。 +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)ですね。 #昔、ブール代数とか計算機工学の中で上記の計算を習った気がします。

Balzary
質問者

お礼

分かりやすい、解答をありがとうございました。

関連するQ&A

専門家に質問してみよう