アプリ版:「スタンプのみでお礼する」機能のリリースについて

Assume 8-bit binary 2's compliment numbers!
46-21=
-16-52=
Assume 16-bit binary 2's compliment numbers!
ACh + FFh=
FFFFh + 10=

このような問題はどのようにして解けばよいのでしょうか?もしくは参考になるサイトなどはありますか?

A 回答 (3件)

 最初の問題は、8ビットの2の補数表記で計算結果を表す問題です。

この表記では、10進数で -127(=-2^7+1)~128(=2^7) まで表すことができます。
http://ja.wikipedia.org/wiki/2%E9%80%B2%E6%95%B0 …
http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C …

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/20 22:14

#2です。


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

サイトは他人に探させるのでなく自分で探して下さい。



+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)ですね。

#昔、ブール代数とか計算機工学の中で上記の計算を習った気がします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/27 22:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!