メインコンテンツへ
基礎理論

浮動小数点数の加算 1.5 × 2³ + 1.25 × 2¹ を行うとき、最初に実行すべき処理として最も適切なものはどれか。

ア.2つの仮数部をそのまま加算し、その後で指数部を調整する。
イ.指数の小さい側の仮数を右シフトして、両者の指数を大きい方に揃える(桁合わせ)。正解
ウ.2つの数値を10進数に変換してから加算し、再び浮動小数点に戻す。
エ.仮数部を最大値にした上で指数部を加算する正規化処理を先に行う。

解説

浮動小数点の足し算は「単位を揃えてから足す物理の問題」と同じ。3kmと500mを足すには、まず500mを0.5kmに直す——これが桁合わせ。順序を間違えると答えが消えます。

なぜ イ が正解か

イが正解。浮動小数点加算は「①桁合わせ→②仮数加算→③正規化→④丸め」の4ステップ。指数が異なるまま仮数を加算しても意味がない(位が違う数を直接足せないのと同じ)。小さい指数側を大きい方に合わせる:1.25×2¹ = 0.3125×2³ と書き直してから、1.5+0.3125=1.8125 を計算し、結果は 1.8125×2³。指数の小さい側の仮数を右シフトする理由は、大きい側の精度を保つため。

なぜ ア は間違いか

指数が違う仮数同士をそのまま加算してはいけない。「3 + 5(指数3)」と「2 + 7(指数1)」を直接5+7=12 と足すような誤り。桁合わせが先。

なぜ ウ は間違いか

10進変換は計算機が直接行わない。浮動小数点は2進数のままハードウェア(FPU)で演算する。10進変換は人間向け表示のときだけ。

なぜ エ は間違いか

正規化は加算の「最後の仕上げ」工程。先にやっても意味がない。順序は固定で、最初は必ず桁合わせ。

出典: AI生成問題(学習用)