アンダーフロー
表現しきれなくなったよ
小さく(0に近く)なり過ぎたよ
計算結果が「0.000……1」みたいな数になったときに発生するよ
簡単に書くよ
アンダーフロー(英:underflow)とは
計算結果が「0.000……1」のように小さくなり過ぎて(0に近づきすぎて)コンピュータさんが表現できなくなった状態のこと
です。
詳しく書くよ
サクっと一言で説明すると
計算結果が「0.000……1」や「-0.000……1」のような非常に小さい(0に近い)小数になっちゃって、コンピュータさんが表現できなくなった状態
が「アンダーフロー」です。
アンダーフローについて調べていると「浮動小数点」という単語が出てくるはずです。
浮動小数点は「数字を仮数、基数、指数の要素で表現すること」です。
あるいは「仮数部と指数部のみを記憶しておく やり方」です。
例えば、ここに
123.45
という数字が あったとしましょう。
これを
12345×10^-2
のように
X × Y ^ Z(XかけるYのZ乗)
形式で表現します。
Xに相当する部分は「仮数」と言います。
Yに相当する部分は「基数」です。
Zに相当する部分は「指数」になります。
そして、仮数部と指数部のみをコンピュータに覚えさせます。
123.45
であれば
12345×10^-2
と解釈して
「12345」と「-2」を覚えておけ。答えるときは「12345」×10^「-2」の計算結果を教えろ
と指示するのです。
これでパソコンさんは「123.45」を覚えられました。
正確には「123.45」を覚えているわけでは ありませんけどね。
覚えているのは仮数部の「12345」と指数部の「-2」です。
ただし、この数字を扱うときには
【仮数】 × 10 ^ 【指数】(【仮数】かける10の【指数】乗)
の計算をしてから扱います。
ですから、実質的に「123.45」を覚えているのと同じです。
細かい理屈はすっ飛ばしますが、浮動小数点で「0.000……1」のような非常に小さい(0に近い)小数を表現しようとすると「えらいこっちゃ!(--;」になります。
その結果、コンピュータさんが「あー、ゴメン。これは表現しきれないっすわq(--)p」となったのがアンダーフローです。
一言でまとめるよ
まぁ「アンダーフロー」って単語が出てきたら「計算結果が小さく(0に近く)なり過ぎて表現できなくなった状態なんだな~」と お考えください。
おまけ
■訳してみるよ
「under(アンダー)」の意味は「下に」とかです。
「flow(フロー)」の意味は「流れ」とか「流れる」とかです。
何となく くっつけると
下に流れる
となります。
実際には「overflow(オーバーフロー)」の逆だから「underflow(アンダーフロー)」にしたのでしょうけどね。





