[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

下位桁あふれ

pointこの用語のポイント

point小数点以下の桁数が多すぎるよ

point表現しきれなくなったよ

point「アンダーフロー」とも呼ばれるよ

スポンサーリンク

簡単に書くよ

下位桁あふれとは

「アンダーフロー」のこと。
つまり

オーバーフローの逆……とも言えるけど、誤解を招きそうだなぁ、のこと
であり

数値の小数点以下の桁数が細かすぎて表現できない状態のこと
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

オーバーフローは「『これより大きい数字は入れられないよ』な限界よりも大きい数字を入れようとして、おかしな状態になってしまうこと」ね。
例えば、2桁の数字(0~99)が入る箱に「10×10」の計算結果(100)を入れようとしたような状態です。

下位桁あふれ

このオーバーフローの逆で、数値が「細かすぎて」おかしな状態になってしまうことを「アンダーフロー」と言います。
数値が「小さすぎて」では、ありません。
数値が「細かすぎて」です。
ご注意ください。

「-100」と「99.00000000001」を比較すると「-100」の方が小さい数字ですよね。
ですが「-100」は表現できるけど「99.00000000001」は表現できない、という事態も起こりえるのです。

入れる値が表現できる桁数よりも大きすぎて、表現しきれないのがオーバーフローです。
入れる値が表現できる桁数よりも細かすぎて、表現しきれないのがアンダーフローです。

それを踏まえて、アンダーフローの日本語呼びが「下位桁あふれ」です。

オーバーフローのことを日本語で「桁あふれ」と表現します。
小数点以下の「下位」の部分が溢れちゃうから「下位桁あふれ」なのでしょう。

それでは、下位桁あふれについて、もう少し細かく説明します。
ただし、ここから先の説明はアンダーフローと同じです。
すでにアンダーフローを理解している人は、読む必要はないと思います。

それでは行ってきましょう。

点数を表示する電光掲示板がありました。

下位桁あふれ2

この電光掲示板で表現できるのは「0」から「9.9」までの数字です。

下位桁あふれ3

ピヨピヨ体操倶楽部では、この電光掲示板を使って点数を表示していました。
ところがどっこい、あるとき「9.25」を表現したくなったのです。

下位桁あふれ4

どうしましょうね?

どうしようもありません。

この電光掲示板は、小数点以下1桁まで表現できる電光掲示板です。
どう頑張っても、小数点以下2桁まである「9.25」は表現できません。

下位桁あふれ5

これが下位桁あふれです。

実はプログラムの世界でも同じことが起こりえます。

プログラミングの世界では「変数」と呼ばれる、値を入れる箱を使います。

下位桁あふれ6

「数値型の変数」であれば、プログラミング世界における「数字を入れておく箱」です。
この数字を入れておく箱(数値型の変数)も電光掲示板と一緒です。
表現できる数字の桁数には限界があります。

そして、この「限界」には2種類あります。

整数部の桁数

の限界と

小数部の桁数

の限界です。

整数部の桁数あふれを「桁あふれ(オーバーフロー)」と言います。
例えば「0」から「9.9」まで表現できる電光掲示板で「10」を表現しようとした場合に発生します。

下位桁あふれ7

小数部の桁数あふれが「下位桁あふれ(アンダーフロー)」です。
例えば「0」から「9.9」まで表現できる電光掲示板で「9.25」を表現しようとした場合に発生します。

下位桁あふれ8

ポイントは

数字の大小は関係ない。関係があるのは桁数

です。

数字の大小を比較すると

0 < 9.25 < 9.9

になります。
ですが、下位桁あふれが発生するのは真ん中の「9.25」です。
「0」と「9.9」は問題なく表現できます。

image piyo2

一言でまとめるよ

まぁ「下位桁あふれ」って単語が出てきたら「小数点以下の桁数が細かすぎて表現できない状態なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク