HOME»基本情報技術者平成19年春期»午前問3
基本情報技術者平成19年春期 午前問3
問3
負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち,4倍するとあふれが生じるものはどれか。
- 1FFF
- DFFF
- E000
- FFFF
分類
テクノロジ系 » 基礎理論 » 離散数学
正解
イ
解説
16ビットの数値表現では、216種類の数を表現することができます。符号なし(正の数のみ)では「0~65535」、符号付き(正&負)では「-32768~32767」の範囲の数値表現が可能です(-32768~32767=-216-1~216-1-1)。
選択肢の16進表現を2進数に変換すると次のようになります。
この設問では「負数を2の補数で表現する」とあります。2の補数は、負数に対応する正の数のビット列を反転し、1を加えることで負数を表現する方法です。2の補数で表現されたビット列は、再度ビット反転して1を加えることで、元の値に戻る性質があります。この性質を利用して、それぞれの数の絶対値を求めます。
選択肢の16進表現を2進数に変換すると次のようになります。
- 1FFF → 0001 1111 1111 1111
- DFFF → 1101 1111 1111 1111
- E000 → 1110 0000 0000 0000
- FFFF → 1111 1111 1111 1111
この設問では「負数を2の補数で表現する」とあります。2の補数は、負数に対応する正の数のビット列を反転し、1を加えることで負数を表現する方法です。2の補数で表現されたビット列は、再度ビット反転して1を加えることで、元の値に戻る性質があります。この性質を利用して、それぞれの数の絶対値を求めます。
- 正の数なのでそのまま → 0001 1111 1111 1111
- 1101 1111 1111 1111 → 0010 0000 0000 0001
- 1110 0000 0000 0000 → 0100 0000 0000 0000
- 1111 1111 1111 1111 → 0000 0000 0000 0001
- 0001 1111 1111 1111 → 0111 1111 1111 1100
- 0010 0000 0000 0001 → 1000 0000 0000 0100
- 0010 0000 0000 0000 → 1000 0000 0000 0000
- 0000 0000 0000 0001 → 0000 0000 0000 0100
- 絶対値は32764です。符号付き16ビットで表現できる範囲内なので、あふれは生じません。
- 正しい。絶対値は32772です。元は負数なので-32772となり、符号付き16ビットで表現できる範囲を超えてしまうため、あふれが生じます。
- 絶対値は32768です。元は負数なので-32768となり、あふれは生じません。符号付き16ビットで表現できる最も小さい値です。
- 絶対値は4です。あふれは生じません。2の補数表現ですべてのビットが1である数値に対応するのは-1であることを覚えておきましょう。