[0278] 基数変換,2の補数

平成11年度秋期 (旧)第2情報処理技術者試験より
10進数 -5.625を、8ビット固定小数点形式による 2進数で表したものはどれか。ここで、小数点位置は、4ビット目と 5ビット目の間とし、負数は 2の補数表現を用いる。

01001100
10100101
10100110
11010011

正解

解説

 まずは、10進数 -5.625を 2進数に変換しましょう。少数点を含む 10進数から 2進数への基数変換は、バックナンバーの 0270号を参考にしてください。

 符号を除いて考えると、整数部分は 5 なので 101、小数部分は 0.625 なので 0.101、よって、10進数 5.625 は 2進数 101.101 となります。

 問題文にあるとおり、最終的な表現形式は、4、5ビット目の間に小数点のある 8ビット固定小数点形式です。負数は 2の補数で表現するので、-101.101 であれば、101.101 と足してちょうど桁上がりした 10000.0000 になる数が正解となります。

 この数は 8桁で表現した 0101.1010 をビット反転して 0000.0001 を加えることでも求めることができます。この方法で計算していきましょう。
  • 0101.1010 をビット反転して、1010.0101
  • 0000.0001 を加えて、1010.0110
 よって、10100110 のウが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題