計算機算術
10進数の0.1を2進数の浮動小数点数で表したときの説明として正しいものはどれか。
- A2進数でも0.1ちょうどで表せるので、誤差は生じない
- B2進数では無限に続く小数になるため、丸めた近い値で表すことになる
- C2進数で表すと、元の値よりちょうど10倍大きな値になる
答えと解説を見る
正解:B. 2進数では無限に続く小数になるため、丸めた近い値で表すことになる
10進数の0.1は、2進数にすると0.000110011001100…と0011が無限にくり返す小数になります。浮動小数点では仮数の桁数が限られているので、途中で丸めた近い値しか記録できず、わずかな誤差が生じます。分母が2の累乗でない分数は、どれも2進数で有限の桁では表せません。一方、0.5や0.25のように分母が2の累乗の数は正確に表せます。値が10倍になるような変換は起こりません。
- A. 0.1は2進数では有限の桁で表せません。
- B. 正しい。無限に続く2進小数になり、丸めた値になります。
- C. 値が10倍になるような変換は起こりません。