- ベストアンサー
基本情報技術者試験の問題(進数変換)
基本情報技術者試験の過去問を解いてるのですが、どうしても分からないんです。 以下原文 負数を2の補数で表現する符号付き16ビットの2進数を16進数で表記したもののうち、四倍するとけた あふれが生じるものはどれか。 不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。DFFFを2進数にする方法は分かるのですが…。 よろしくお願いいたします。
- みんなの回答 (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の補数で記憶する意味は、コンピュータの減算回路の合理化だそうです。
その他の回答 (3)
- edomin7777
- ベストアンサー率40% (711/1750)
DFFF ↓(2進化) 1101111111111111 ↓(反転) 0010000000000000 ↓(+1) 0010000000000001 ↓(16進化) 2001 ↓(10進化) 2×16^3+1=2×4096+1=8192+1=8193 どこが判らない? 因みに、4倍するということは左に2ビットシフトするのと同じ事。 1101111111111111 を2回左へシフトすると、符号ビットが0になっちゃうでしょ?
- jjon-com
- ベストアンサー率61% (1599/2592)
http://okwave.jp/qa/q5982301.html の私の過去の回答ANo.3~ANo.5
> 不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。 それは、「2の補数」を理解していないということですので、まずは参考書で「2の補数」について勉強してください。