基本情報 平成29年度 秋期 問2:テクノロジ系に関する問題
0 以外の数値を浮動小数点表示で表現する場合, 仮数部の最上位桁が 0 以外にな るように, 桁合わせする操作はどれか。ここで, 仮数部の表現方法は, 絶対値表現 とする。
- a切上げ
- b切捨て
- c桁上げ
- d正規化正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは d「正規化」 です。
浮動小数点数は「仮数 × 基数^指数」(例:1.234 × 10^5)のように表します。同じ数を「0.01234 × 10^7」「12.34 × 10^4」のようにいくつでも書けてしまうので、ルールを統一します。
そのルールが正規化:「仮数の最上位桁が0以外になるように指数を調整する」。これで表現が1つに決まり、精度のムダもなくなります。
👉 覚え方:正規化=表現をひとつのルールに正す!
ほかの選択肢:a 切上げ/b 切捨て/c 桁上げは数値の値を変える操作で、桁合わせの目的とは別。
なぜこれが正解か
正解は d。正規化(normalization)は浮動小数点表現において、仮数部の最上位桁が0以外になるよう仮数を左右にシフトし指数を調整する操作。同じ数値の表現が一意に定まり、有効桁数を最大化できる。例:2進浮動小数点で `0.001101 × 2^5` → `1.101 × 2^2`(IEEE 754 では暗黙の先頭1)。
各選択肢の解説
- a 切上げ:丸め処理の一種(端数を上方向に処理)。値が変わる。
- b 切捨て:端数を下方向に処理。値が変わる。
- c 桁上げ:算術演算で生じる繰り上がり。
- d 正規化:仮数部を一意の形に揃える表現変換 → 正解。
覚え方・ひっかけ注意
「正規化」はDB分野でも使われる用語(第1〜第5正規形)だが意味は別。浮動小数点の正規化は「先頭が0以外になるよう揃える」と覚える。IEEE 754 では正規化された数の先頭1ビットを暗黙化(hidden bit)して仮数部の精度を1ビット節約する点も頻出。
理論的背景
IEEE 754(1985年初版、2008年大改訂)が浮動小数点の事実上の世界標準。単精度(32bit)は 符号1bit + 指数8bit(バイアス127) + 仮数23bit、倍精度(64bit)は 符号1 + 指数11(バイアス1023) + 仮数52。正規化数は指数1〜2046(倍精度)の範囲で、仮数の先頭は暗黙の1。指数0は非正規化数(subnormal)を表し、0付近の精度を確保するためのgradual underflowを実現する。
演算と精度の問題
- 桁落ち(cancellation):近い値同士の減算で有効桁が失われる。
- 情報落ち(loss of trailing digits):絶対値の差が大きい数の加算で小さい方が無視される。
- オーバーフロー/アンダーフロー:指数の表現範囲を超える/下回る。
- 正規化の役割:これらを最小化するため、演算後に必ず正規化を行う。
特殊値
IEEE 754 では NaN(Not a Number、quiet/signaling)、±Inf、±0、非正規化数を厳密に規定し、例外(invalid, divide-by-zero, overflow, underflow, inexact)の扱いを定義。0/0=NaN、1/0=+Inf、−1/0=−Inf等。
実装と性能
- FPU:CPUに統合された浮動小数点演算ユニット。x86のSSE/AVX、ARMのVFP/NEON、GPUのCUDAコア。
- 半精度(FP16)/bfloat16:機械学習で広く採用。仮数の精度を犠牲に表現範囲を確保。
- TF32:NVIDIA Ampere以降のTensorコア用、指数8bit + 仮数10bit。
- FP8(E4M3, E5M2):最新のLLM学習で採用。
試験での位置づけ
FE「基礎理論」分野で毎期1問の頻出領域。正規化、丸め、IEEE 754形式、桁落ち・情報落ちは確実な得点源。応用情報・高度ではエラー伝播解析、数値計算の安定性、行列演算の条件数まで踏み込む。
選択肢の発展補足
丸め(rounding)の方法はIEEE 754で4方式規定:最近接偶数(default、banker's rounding)、0方向、+∞方向、−∞方向。a/bの切上げ・切捨てはこのうちの方向丸めに該当。最近接偶数丸めは統計的に偏りが最小化されるため標準。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成29年度 秋期 問2/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。