基本介紹
- 中文名:算術下溢
- 學科:計算機
簡介,下溢間距,處理算術下溢,浮點數,
簡介
算術下溢出現在計算結果很接近零,使得計算結果的大小小於浮點數可以表示的最小數字。算術下溢也可以視為是浮點數指數在負值時的溢位。例如,浮點數指數範圍為-128至127,一個絕對值小於2的浮點數就會造成下溢(假設-128的階碼用於表示負無窮)。
下溢間距
界於−fminNandfminN之間的區間稱為下溢間距(underflow gap),其中fminN為一般浮點數格式所能表示的最小正數。
在早期的設計中,界於下溢間距之間的數字其值均視為零,因此若出現算術下溢,其結果會被改為零,可能是用硬體或系統軟體處理,此處理方式稱為“清洗為0”(flush to zero)。
1984年版的IEEE 754導入了次正規數,次正規數和零可以填滿下溢間距。假設浮點數指數範圍為-128至127,最小可表示正規數為2,次正規數則是類似0.9、0.8……之類的數,計算時會將結果轉換為最接近的次正規數,因此可以漸近下溢,不過最接近的次正規數中仍有可能是零。
處理算術下溢
IEEE 754中規定只有算術下溢會造成精確度下降時才回報算術下溢,一般是在最後的計算結果不對時才會出現。但若程式要捕捉算術下溢,不論是否有精確度,都會回報算術下溢。IEEE 754處理算術下溢及其他異常的方式相同,都要紀錄算術下溢時的浮點運算器狀態。