簡體   English   中英

為什么零不是次正規數?

[英]Why is zero not a subnormal number?

IEEE-754 標准定義次正規數,以便明確排除兩個零。 這個決定的理由是什么,這是否意味着次正規的性能懲罰不適用於零?

首先,重要的是要認識到 IEEE-754 是一致實現行為的標准。 它談論的是“什么”,而不是“如何”。 它不是關於如何在軟件或硬件中有效實現該行為的指南。 零具有次正規的位模式和語義這一事實很有趣顯然不是偶然的,但不是這里要討論的標准

其次,回顧一下歷史:次正規是 IEEE-754 中比較奇怪的方面之一。 許多以前的浮點方法都不支持它們。 直到今天,大多數 754 實現要么允許關閉它們,要么僅通過軟件回退支持它們,要么根本不支持它們。

次正規函數過去和現在都被視為“最后一道防線”:您通常不會故意將它們用作輸入,但將它們用作輸出有助於提高使用 FP 的算法的穩健性。 Sterbenz 定理(您可以精確地減去相差小於兩倍的任何兩個 FP 數)就是一個很好的例子。 但當時認識到有效實施次正規算術的困難。

不用說,數字零很常見。 涉及零的操作不會使用支持次正規的代碼/電路來完成,因為那樣會很慢,而且用特殊情況來代替零輸入非常容易。

因此,總結一下:零沒有被描述為“次正規數”,因為次正規數的重要實際方面(即慢度)不適用於它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM