IEEE 754 標準是一種由電氣和電子工程師協會(IEEE)制定的浮點數表示的標準,廣泛應用于計算機系統中,下面是詳細介紹:
歷史背景
在 IEEE 754 標準出現之前,不同的計算機系統采用各自的浮點數表示方法,這給程序的可移植性帶來了很大的困難。為了解決這個問題,IEEE 組織成立了專門的工作組,經過多年的研究和討論,于 1985 年正式發布了 IEEE 754 標準。
基本格式
- 二進制浮點數格式 :包括單精度(32 位)、雙精度(64 位)和擴展精度(80 位)。其中,單精度浮點數的 1 位是符號位,接下來的 8 位是指數位,最后的 23 位是尾數位;雙精度浮點數的 1 位是符號位,接下來的 11 位是指數位,最后的 52 位是尾數位。
- 十進制浮點數格式 :包括 32 位、64 位和 128 位三種。十進制浮點數格式在存儲和運算時直接使用十進制數,避免了二進制浮點數在表示十進制數時可能出現的精度問題,但在存儲效率和運算速度上可能不如二進制浮點數格式。
數的表示
- 零 :零的指數位和尾數位都為全零,符號位可以是 0 或 1。正零和負零在數值上相等,但在某些運算中可能會產生不同的結果。
- 無窮大 :當指數位全為 1 且尾數位全為零時,表示無窮大。符號位為 0 表示正無窮大,符號位為 1 表示負無窮大。
- NaN(Not a Number) :當指數位全為 1 且尾數位不全為零時,表示 NaN。NaN 用于表示一些非法或不確定的運算結果,如 0/0、∞?∞ 等。
運算規則
- 加減法運算 :首先需要對階,即把兩個數的指數調整為相同的值。然后進行尾數的加減運算,最后進行舍入和規格化處理。
- 乘除法運算 :將兩個數的尾數相乘或相除,指數相加或相減。然后對結果進行舍入和規格化處理。
舍入規則
- 向最接近偶數舍入 :這是默認的舍入方式。在需要舍入時,選擇最接近的可表示數,如果兩個數距離相等,則選擇尾數最低位為 0 的那個數。
- 向零舍入 :直接舍去多余的部分,不進行任何調整。
- 向正無窮舍入 :總是朝正無窮方向舍入,結果是大于或等于原數的那個可表示數。
- 向負無窮舍入 :總是朝負無窮方向舍入,結果是小于或等于原數的那個可表示數。
優點和影響
- 優點 :提高了浮點數運算的精度和可靠性,增強了程序的可移植性,為計算機系統的硬件設計和軟件開發提供了統一的規范。
- 影響 :IEEE 754 標準被廣泛應用于計算機處理器、編程語言、數學庫等各個領域,成為現代計算機系統中浮點數表示和運算的基礎標準。