0.1 が2進数で正確に表せない理由

10進小数 0.1 を2進浮動小数点数で正確に表現できない理由として、最も適切なものはどれか。

解説を見る
0.1(10) = 1/10 は、分母10が2以外の素因数5を含むため、2進小数 0.000110011001…(2) と無限循環する。有限ビットの仮数部では途中で打ち切られ、必ず誤差(丸め誤差)が生じる。これが浮動小数点演算の誤差の主因となる。
誤答の解説
B0.1 は小さな数であり指数部の大きさは本質ではない。問題は仮数部が循環小数を格納しきれない点にある。
C浮動小数点数は正負どちらの小数も表せる。仕様上の制約という説明は誤り。
D0.1 は2進でも有理数(2数の比)である。循環はするが無理数ではない。
ヒント

・分母 10 の素因数を考える。2進で割り切れるのは分母が 2 のべき乗のときだけ。

関連する問題

← 基本情報の一覧へ