dポイントプレゼントキャンペーン実施中!

基本情報技術者試験の過去問を解いてるのですが、どうしても分からないんです。

以下原文

負数を2の補数で表現する符号付き16ビットの2進数を16進数で表記したもののうち、四倍するとけた あふれが生じるものはどれか。

不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。DFFFを2進数にする方法は分かるのですが…。

よろしくお願いいたします。

A 回答 (4件)

先ず、「符号付き」とあるので、左端の1桁(ビット)は符号(0:正、1:負)であり、残りの15桁が整数値を表すことに注意。


2進数は、16進数と対応させるために4桁で区切って、敢えてブランクを入れると扱い易くなる。
問題の数値の整数部分は、(5FFF)
この2進表現は、
101 1111 1111 1111
元に戻すと、
010 0000 0000 0001 <--右端から見て最初の1まではそのまま、それから先はすべて反転させる。
これを10進数に変換すると、
8193=4096 X 2 + 256 X 0 + 16 X 0 + 1

マイナスの符号が付いていたので、本当は(-8193)

16進数は2進の4桁に対応するので、これを10進に変換する際の乗数は暗記した方が良い。
電卓で、16 X =、=、=、とやると出てくる数字、すなわち、16、256、4096、65536、ま、これ以上は無理でしょう....

負数を2の補数で記憶する意味は、コンピュータの減算回路の合理化だそうです。

参考URL:http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C …
    • good
    • 0

DFFF


↓(2進化)
1101111111111111
↓(反転)
0010000000000000
↓(+1)
0010000000000001
↓(16進化)
2001
↓(10進化)
2×16^3+1=2×4096+1=8192+1=8193

どこが判らない?

因みに、4倍するということは左に2ビットシフトするのと同じ事。
1101111111111111
を2回左へシフトすると、符号ビットが0になっちゃうでしょ?
    • good
    • 0

http://oshiete.goo.ne.jp/qa/5982301.html の私の過去の回答ANo.3~ANo.5
    • good
    • 0

> 不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。



それは、「2の補数」を理解していないということですので、まずは参考書で「2の補数」について勉強してください。
    • good
    • 0

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