アンダーフローとは?あんだーふろー
アンダーフローとは、浮動小数点数(数を「仮数×基数の指数乗」の形で表す方式。仮数は有効数字の並びの部分、基数は何進数かを表す数(コンピュータでは2)、指数は小数点の位置を何桁ずらすかを表す数)の計算で、結果の絶対値が0に近すぎて、表せるいちばん小さい値を下回ってしまうこと。指数部(ビット列のうち指数を入れる部分)の桁数に限りがあるために起こり、多くの場合は結果が0として扱われる。反対に、結果が大きすぎて表せる範囲を超えるのがオーバーフロー(あふれ)である。単精度(32ビット)より倍精度(64ビット)のほうが指数部が長く、アンダーフローは起こりにくい。
最終更新:2026-10-10
基本情報を最短で暗記・合格する →背景
コンピュータは数を決まったビット数でしか持てないので、浮動小数点数で表せる範囲には大きい側と小さい側の両端がある。大きすぎる数があふれるだけでなく、0に近すぎる数も指数の桁に収まらず、表せるいちばん小さい値を下回る。小さな確率を何度も掛け合わせる計算ではこれが現実に起こり、結果が0になる。気づかずに集計を続けると誤るため、下端の問題として区別された。
具体例
単精度の浮動小数点数で0.001を何度も掛け合わせると、値は表せるいちばん小さい値より小さくなり、結果が0になってしまう。研究室の課題で、小さな確率をたくさん掛け合わせるプログラムを書くと、途中で積が0になってしまい、どの候補も「確率0」として比べられなくなることがある。
試験での引っ掛け
アンダーフローは「マイナス方向へのオーバーフロー」ではない。大きな負の数で範囲を超えるのもオーバーフローで、アンダーフローは0に近すぎる側の問題である。絶対値の差が大きい2数の加減算で小さい方が無視される「情報落ち」や、近い値どうしの引き算で有効桁が減る「桁落ち」とも別の現象である。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。