基本情報技術者 2017年 春期 午前(科目A) 問02
問題文
以外の数値を浮動小数点表示で表現する場合、仮数部の最上位桁が以外になるように、桁合わせする操作はどれか。ここで、仮数部の表現方法は、絶対値表現とする。
選択肢
ア:切上げ
イ:切捨て
ウ:桁上げ
エ:正規化(正解)
🔒 解説は解答すると表示されます
浮動小数点の正規化【午前解説】
正解の理由
正解は エ(正規化)です。浮動小数点数は一般に仮数(mantissa)と指数(exponent)で表現され、絶対値表現では仮数の絶対値が基数に対して
となるように仮数の桁位置を調整します。この桁位置調整の操作が「正規化」です。正規化により仮数の最上位桁(最上位ビット/桁)が0以外となり、表現可能な有効桁数を最大化します。したがって「仮数部の最上位桁が0以外になるように桁合わせする操作」は正規化が該当します。
解法ステップ
- 問題文で求める操作の目的(仮数の最上位桁を0以外にする)を明確にする。
- 各選択肢の定義を確認する(切上げ=丸め、切捨て=丸め、桁上げ=繰り上がり/曖昧、正規化=仮数シフト+指数調整)。
- 目的に合致する操作は仮数のシフトであり、それは「正規化」であると判定する。
- 正誤を確認し、0は除外される点を再確認する。
選択肢別の誤答解説
- ア: 切上げ
切上げは丸め方法の一つで、数値をある桁で増やす処理(大きくする丸め)です。仮数の位置合わせ(桁シフト)を行う操作ではないため誤りです。 - イ: 切捨て
切捨ても丸めの一種で、指定桁以下を捨てる操作です。正規化のように仮数をシフトして最上位非ゼロ桁を保証するものではありません。 - ウ: 桁上げ
「桁上げ」は文脈によっては繰り上がりを指し曖昧な用語です。浮動小数点表現における仮数の位置合わせという意味では不適切で、正確な操作名ではありません。 - エ: 正規化
正規化は仮数を左または右にシフトして指数を調整し、仮数の最上位桁が基数に対して非ゼロ(絶対値表現で所定の範囲)となる操作であり、設問の条件に合致します。
よくある誤解
- 「切上げ(丸め)」と混同する誤解:切上げ・切捨ては丸め(rounding)であり、桁位置を合わせる操作ではありません。正規化は丸めではなく仮数のシフトと指数調整です。
- 「桁上げ」を正規化と考える誤解:桁上げは一般に繰り上がり等を指し意味が曖昧で、仮数の位置を調整して最上位非ゼロにする操作を正確に表しません。
- 「0の扱い」の誤解:0は正規化できない特別な値です。問題文は以外と明示している点を見落とすと混乱します。
補足コラム
- IEEE 754 標準では、二進の正規化数は仮数の最上位ビットが1となるように表現され、暗黙の1(implicit leading 1)により有効桁を効率的に使います。
- 最小の正規化可能な指数を下回る非常に小さい数は「非正規化数(denormal/subnormal)」として扱われ、正規化の条件を満たさないため特別処理が必要です。
- 正規化は表現の一貫性と最大の精度を確保するための工程であり、丸め(切上げ・切捨て)は演算結果の桁数を決める別の工程です。
FAQ
Q1: なぜ問題文で「以外」とわざわざ書くのですか?
A1: 0は正規化できない特殊な値で、仮数の最上位非ゼロ桁を定義できないため区別が必要です。
A1: 0は正規化できない特殊な値で、仮数の最上位非ゼロ桁を定義できないため区別が必要です。
Q2: 正規化と丸めは同時に行われますか?
A2: 多くの場合、演算ではまず正規化して仮数位置を整え、その後必要に応じて丸め(切上げ・切捨てなど)を行います。目的と役割が異なります。
A2: 多くの場合、演算ではまず正規化して仮数位置を整え、その後必要に応じて丸め(切上げ・切捨てなど)を行います。目的と役割が異なります。
Q3: 十進表記でも正規化は必要ですか?
A3: はい。基数が10の場合でも同様に仮数の絶対値を にするなどの正規化を行います。
A3: はい。基数が10の場合でも同様に仮数の絶対値を にするなどの正規化を行います。
関連キーワード: 浮動小数点、正規化、仮数部、指数部、非正規化数、丸め(切上げ・切捨て)、IEEE754、桁合わせ、暗黙の1、表現範囲

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

