算術下溢
此條目需要補充更多來源。 (2013年3月20日) |
算術下溢也稱為浮點數下溢,是指計算機浮點數計算的結果小於可以表示的最小數。
算術下溢出現在計算結果很接近零,使得計算結果的大小小於浮點數可以表示的最小數字。算術下溢也可以視為是浮點數指數在負值時的溢位。例如,浮點數指數範圍為-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處理算術下溢及其他異常的方式相同,都要紀錄算術下溢時的浮點運算器狀態。
相關條目
這是一篇電腦科學小作品。您可以透過編輯或修訂擴充其內容。 |