プロが教えるわが家の防犯対策術!

どうしてもこの598に対する問題の答えが欲しいので、
分かる方、教えてください!
お願いします!!

10進数598を2進数に変換すると、((1))になる。
1に対する補数は((2))で2に対する補数は((3))である。
また8進数は((4))で、16進数は((5))である。

A 回答 (3件)

簡単に4bitで考えてみましょう。


1010(10進数で10)の1の補数はビット反転すればいいので、
0101(10進数で5)になります。2の補数はこれに1を足すと
0110(10進数で6)。

0001(10進数で1)の1の補数はビット反転して
1110
2の補数は、1を足して
1111

1-1=0の式が成り立つか?1-1を1+(1の2の補数)と変形して2進数で足し算してみます。

 0001
+1111
-----
10000

桁上がりを無視すると見事に0になっていますね。

さて肝心の598ですが16bitの2進数で表わすと
0000 0010 0101 0110
ビット反転して1の補数を求めると
1111 1101 1010 1001
これに1を足して2の補数にすると
1111 1101 1010 1010


(なお先の私の回答で2の補数を求めるとき桁上がりは無視しますと書きましたが、桁上がりするのは0の2の補数を求めるときだけなので、特殊な場合です。失礼しました。)
    • good
    • 0
この回答へのお礼

丁寧で、分かりやすいご説明、ありがとうございました!
ゆっくり考えながらしっかり勉強したいと思います。

本当にありがとうございました!!(^^)

お礼日時:2001/07/31 23:50

x(xは16bitの2進数とする)の1の補数は1111 1111 1111 1111(2進数)からxを引けばよいのです。

xをビット反転したのと同じことです。
2の補数は1の補数に1を足せばいいです。桁上がりは無視します。
後はご自分で考えてみてください。それでもわからなかったら補足してください。
「xの2の補数を足す」という操作は「xを引く」という操作と同じことになります(桁上がりは無視する)。
これはコンピュータのCPUにとって、引き算が足し算に変わるので便利です。

この回答への補足

説明ありがとうございます!!
考えてみたのですが、2の補数は、0101010110になったのですが・・(^^;
1の補数が分からないです。
本当に何回も申し訳ないのですが、よろしければ解答だけでもいいので
教えていただけないでしょうか。
お願いします。すみません。

補足日時:2001/07/31 22:25
    • good
    • 0
この回答へのお礼

補足ですが
2の補数は0110101010になったのですが・・の間違えでした・・。
すみません・・・

お礼日時:2001/07/31 23:06

598→1001010110(2進法)


598→1126(8進法)
598→256(16進法)

補数ってのがちょっと解りません。。m(__)m(1の補数と2の補数があるので)
下記が参考になると思います。

Windowsの関数電卓使えばすぐ出ますよ。>変換

参考URL:http://www.geocities.co.jp/Playtown-Dice/5061/sa …
    • good
    • 0
この回答へのお礼

素早い解答本当にありがとうございます(^^)
助かりました!!URLも参考になりました。
もう少しで試験があるのですが、頑張ります(^^)

お礼日時:2001/07/31 22:24

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