算术下溢

算术下溢也稱為浮点数下溢，是指计算机浮点数计算的结果小于可以表示的最小数。

算术下溢出現在計算結果很接近零，使得計算結果的大小小於浮点数可以表示的最小數字。算术下溢也可以視為是浮点数指數在負值時的溢位。例如，浮点数指數范围为-128至127，一个绝对值小于2−127的浮点数就会造成下溢（假设-128的阶码用于表示负无穷）。

下溢間距
界於−fminN and fminN之間的區間稱為下溢間距（underflow gap），其中fminN為一般浮點數格式所能表示的最小正數。

在早期的設計中，界於下溢間距之間的數字其值均視為零，因此若出現算术下溢，其結果會被改為零，可能是用硬體或系統軟體處理，此處理方式稱為「清洗为0」（flush to zero）。

1984年版的IEEE 754導入了，次正规数和零可以填滿下溢間距。假設浮点数指數范围为-128至127，最小可表示正规数為2−127，次正规数則是類似0.9 −127、0.8 −127……之類的數，計算時會將結果轉換為最接近的次正规数，因此可以漸近下溢，不過最接近的次正规数中仍有可能是零。

處理算术下溢
出現算术下溢時，可能會設定一個狀態位元、產生異常、產生中斷或是這幾項的組合。

IEEE 754中規定只有算术下溢會造成精確度下降時才回報算术下溢，一般是在最後的計算結果不對時才會出現。但若程式要捕捉算术下溢，不論是否有精確度，都會回報算术下溢。IEEE 754處理算术下溢及其他異常的方式相同，都要紀錄算术下溢時的浮點運算器狀態。

相關條目
IEEE 754
−0
算術溢出

Category:計算機算術