浮動小数点数における情報落ちの発生条件と計算

正解は ア です。 仮数部は小数点以下7ビットまでしか持てません。2つの数を足すときは指数を大きい方にそろえるため、 小さい数の下位ビットが小数点以下8ビット目より後ろにはみ出すと 、その分が失われます(情報落ち)。{ } 内を先に計算し、最後の加減算の結果を $1.\cdots\times2^5$ の形で表したときのビット数を調べます。 選択肢 計算の流れ(2進) 最も多く必要な小数部 情報落ち ア 0.0011+0.0001=0.01 → +100000=100000.01 1.0000001×2⁵ の7ビット しない イ 0.0011−0.0001=0.001 → +100000=100000.001 1.00000001×2⁵ の8ビット する ウ 100000+0.0011=100000.0011({ } 内) 1.000000011×2⁵ の9ビット する エ 100000−0.0001=11111.1111({ } 内) 1.11111111×2⁴ の8ビット する アは小さい2つの数を先に足して $2^{-2}$ にまとめてから大きい数に足すので、7ビットに収まります。小さい数どうしを先に計算すると情報落ちを防ぎやすくなります。

浮動小数点数を,仮数部が7ビットである表示形式のコンピュータで計算した場合,情報落ちが発生しないものはどれか。ここで,仮数部が7ビットの表示形式とは次のフォーマットであり,( )2(~)_2内は2進数,YYは指数である。また,{ }\{~\}内を先に計算するものとする。

(1.X1X2X3X4X5X6X7)2×2Y(1.X_1X_2X_3X_4X_5X_6X_7)_2 \times 2^Y

出典令和4年度 春期 応用情報技術者試験 午前 問1
ア
{(1.1)2×2−3+(1.0)2×2−4}+(1.0)2×25\{(1.1)_2 \times 2^{-3} + (1.0)_2 \times 2^{-4}\} + (1.0)_2 \times 2^5
イ
{(1.1)2×2−3−(1.0)2×2−4}+(1.0)2×25\{(1.1)_2 \times 2^{-3} - (1.0)_2 \times 2^{-4}\} + (1.0)_2 \times 2^5
ウ
{(1.0)2×25+(1.1)2×2−3}+(1.0)2×2−4\{(1.0)_2 \times 2^5 + (1.1)_2 \times 2^{-3}\} + (1.0)_2 \times 2^{-4}
エ
{(1.0)2×25−(1.0)2×2−4}+(1.1)2×2−3\{(1.0)_2 \times 2^5 - (1.0)_2 \times 2^{-4}\} + (1.1)_2 \times 2^{-3}