ISO/IEC 9899:2011 §5.2.4.2.2 ¶10(P48)表示:「符合標準的編譯器可能選擇不執行非標準化浮點數」的意義是什麼?
次正規數的存在或不存在的特徵在於FLT_HAS_SUBNORM,DBL_HAS_SUBNORM, 和LDBL_HAS_SUBNORM的 實現定義的值:
-1不確定
0不存在(類型不支持低於正常數字)
1目前(類型確實支持次正常數字)
什麼!所以在一些平臺上我不能寫double d = 33.3
?或者編譯器會自動將其轉換爲333E-1
? 存在或不存在非標準化浮點數的實際意義是什麼?
您需要了解[subnormal number](http://en.wikipedia.org/wiki/Denormal_number)是什麼。 – 2013-04-29 13:52:44
33.3和333E-2都不是任何正常實現浮點算法的低於正常數的數。假設您正在使用IEEE 754浮點運算,則子正常數字的指數等於最小可能的指數,並且尾數以0位開始,而不是像正常數字中的1位開始。前導1位通常是隱含的;它沒有物理存儲。換句話說,低於正常的數字是微小的。 – 2013-04-29 14:03:39