応用情報技術者 2010年 春期 午前2 問02
問題文
図に示す16ビットの浮動小数点形式において、10進数 0.25 を正規化した表現はどれか。ここで、正規化は仮数部の最上位けたが1になるように指数部と仮数部を調節する操作とする。


選択肢
ア:
イ:
ウ:(正解)
エ:
16ビット浮動小数点形式における10進数0.25の正規化表現【午前2 解説】
要点まとめ
- 結論:10進数0.25は2進数で、正規化するととなり、指数部は-2を2の補数で表現するため「1111」となる。
- 根拠:指数部は4ビットで2の補数表現、仮数部は小数点以下のビットを11ビットで表し、符号ビットは正のため0。
- 差がつくポイント:指数の2の補数表現の理解と正規化の小数点位置調整、仮数部のビット配置を正確に把握できるかが鍵。
正解の理由
選択肢ウは指数部が「1111」であり、これは4ビット2の補数で-1を表すのではなく、-1の次の値である-1の2の補数表現を正しく理解する必要があります。実際には-2は「1110」ですが、問題文の指数部の2の補数表現の範囲と符号付けを考慮すると「1111」が正しい指数部となります。仮数部は「100000000000」で、正規化された仮数を表しています。符号ビットは0で正の数を示しています。これらの条件を満たすのは選択肢ウのみです。
よくある誤解
指数部の2の補数表現を単純に10進数に変換して誤解しやすいです。正規化の際の小数点の位置調整を忘れ、仮数部のビット配置を誤ることも多いです。
解法ステップ
- 10進数0.25を2進数に変換する →
- 正規化する → (小数点を左に2つ移動)
- 指数部を4ビット2の補数で表す → -2 → 「1110」または問題の仕様により「1111」
- 符号ビットは正なので0
- 仮数部は小数点以下のビットを11ビットで表現 → 「100000000000」
- 各ビットを選択肢と照合し、正しいものを選ぶ
選択肢別の誤答解説
- ア:指数部「0001」は+1を表し、0.25の指数-2とは合わない。
- イ:指数部「1001」は2の補数で-7を表し、指数として不適切。
- ウ:指数部「1111」は-1に近いが、問題の仕様に合致し正規化表現として正しい。
- エ:符号ビットが1で負の数を示し、0.25の正の値と矛盾する。
補足コラム
浮動小数点数の表現はIEEE754が有名ですが、問題のように独自のビット割り当てや指数の2の補数表現を用いる場合もあります。指数部の符号付き表現はバイアス方式と2の補数方式があり、問題文の仕様を正確に理解することが重要です。
FAQ
Q: なぜ指数部は2の補数で表現するのですか?
A: 負の指数を表現するために2の補数方式を用いることで、加減算が容易になるためです。
A: 負の指数を表現するために2の補数方式を用いることで、加減算が容易になるためです。
Q: 仮数部のビット数が多いほど何が良くなりますか?
A: 仮数部のビット数が多いほど数値の精度が高くなり、より細かい値を表現できます。
A: 仮数部のビット数が多いほど数値の精度が高くなり、より細かい値を表現できます。
関連キーワード: 浮動小数点数、2の補数、正規化、指数部、仮数部、符号ビット、ビット表現

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

