計算機算術
IEEE 754の非正規化数(サブノーマル数)の役割として正しいものはどれか。
- A最も大きい正規化数より大きな値を表し、オーバーフローを防ぐ
- B計算の誤りを検出し、結果をNaNに置き換える
- C正規化数と0の間を埋め、アンダーフローをなだらかにする
答えと解説を見る
正解:C. 正規化数と0の間を埋め、アンダーフローをなだらかにする
正規化数だけでは、最も小さい正規化数(単精度で約1.18 × 10⁻³⁸)と0の間に大きなすき間ができ、それより小さい結果はいきなり0になってしまいます。非正規化数は、指数部をすべて0にして先頭の1を仮定しないことで、このすき間を等間隔の小さな数で埋めます(漸進アンダーフロー)。これにより x − y = 0 なら x = y という性質が保たれます。大きな値を表すのではなく、そちらは無限大で表します。誤りの検出とも関係ありません。
- A. 大きすぎる値は無限大で表します。
- B. 誤りの検出とは関係ありません。
- C. 正しい。0の近くのすき間を埋め、アンダーフローをなだらかにします。