浮動小数点数を、仮数部が7ビットである表示形式のコンピュータで計算した場合、情報落ちが発生しないものはどれか。ここで、仮数部が7ビットの表示形式とは次のフォーマットであり、(
)2内は2進数、Yは指数である。また、{ } 内を先に計算するものとする。
(1.X1X2X3X4X5X6X7)2×2Y
ア {(1.1)2×2-3 + (1.0)2×2-4} + (1.0)2×25
イ {(1.1)2×2-3 − (1.0)2×2-4} + (1.0)2×25
ウ {(1.0)2×25 + (1.1)2×2-3} + (1.0)2×2-4
エ {(1.0)2×25 − (1.0)2×2-4} + (1.1)2×2-3
ア
情報落ちは、絶対値の非常に大きな数値と小さな数値の加算や減算を行ったとき、小さい数値が計算結果に反映されないことによって発生する誤差のことである。
また、2進数で表された数値を2倍すると左に1ビットシフトし、2-1倍、つまり 1/2倍すると右に1ビットシフトする。
ア 正しい。
{(1.1)2×2-3 + (1.0)2×2-4} + (1.0)2×25
= {(0.0011)2 + (0.0001)2} + (100000)2
= (0.0100)2 + (100000)2
= (10000.01)2
となり、7ビットで計算できる。
イ {(1.1)2×2-3 − (1.0)2×2-4} + (1.0)2×25
= {(0.0011)2 − (0.0001)2} + (100000)2
= (0.0010)2 + (100000)2
= (10000.001)2
となり、7ビットでは計算できない。
ウ {(1.0)2×25 + (1.1)2×2-3} + (1.0)2×2-4
= {(100000)2 + (0.0011)2} + (0.0001)2
= (10000.0011)2 + (0.0001)2
となりこの時点で、7ビットでは計算できない。
エ {(1.0)2×25 − (1.0)2×2-4} + (1.1)2×2-3
= {(100000)2 − (0.0001)2} + (0.0011)2
= (11111.1111)2 + (0.0011)2
となりこの時点で、7ビットでは計算できない。
目次 | 問2 |