アンダーフロー 【underflow】

概要

アンダーフロー(underflow)とは、コンピュータで実数の計算をした結果、絶対値が小さすぎて正確に表現・計算できなくなってしまうこと。

コンピュータでは実数を浮動小数点数という形式で表すが、一つのを表すためのデータ長が決まっており、表現できるの範囲も限られている。計算結果の絶対値が表現可能な最小のより小さくなってしまうことをアンダーフローという。

例えば、一つの32ビットデータで表す単精度浮動小数点数float型)では、表現できるの範囲は十進表記で約1.2×10-38~約3.4×1038であるため、指数部が10-39を下回る場合には正しくを表現できなくなる。

実際にアンダーフローが生じた際の動作はプログラミング言語処理系によっても異なるが、仮数部を規定(通常は仮数の先頭が1になるよう正規化される)よりも小さくすることで表現できる範囲では、指数部を下限値にしたまま仮数部の先頭から0を詰めていく処理がわれる場合がある。

さらにが小さくなっていき、仮数部の桁を使い切ってしまうと、どうやってもそのようなは表現することができないため、が完全に0になってしまうことが多い。除算を組み合わせた計算の途中でアンダーフローが起きると、意図せずゼロ除算が生じて実行時エラーとなってしまう場合があるため注意が必要である。

負数のオーバーフロー

よく勘違いされるが、負の数が表現可能な下限を超え、正しくを表現できなくなるのは「オーバーフロー」(桁あふれ)の一種である。絶対値が表現可能な上限を超えることによって発生し、下限より小さくなるアンダーフローとは区別される。

(2019.4.4更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる