浮點數

今天看到一個64位浮點數打印的Erlang代碼,其中有兩個很神奇的數字-1074和1075,感受不知何意。spa

各類翻資料,關於浮點的主要是IEEE 754。裏面提到兩個模式,規約模式和非規約模式。當咱們無限的接近0的時候,就能夠使用非規約模式。64位的雙精度浮點,11位是指數,52位是尾數,同時爲了不問題,指數部分永遠須要是正數,那麼就須要加一個固定的偏移值1023(這裏面有個計算公式,公式略顯複雜,可是道理很簡單)。 浮點數

所以在非規約模式(指數部分爲0)下,直接能夠有最小的非規約數 2^-1074。-1074來自11位指數最小值-1022 + 尾數位數52。最大規約數是(1-(1/2)^ 53) * 2^1024),可是根據規定,指數最大爲1023,因此直接加上尾數的位數1023 + 52就是1075了。 數字

之因此出現這兩個數字,是將一些複雜的流程精簡化的結果,一切都是爲了加快計算。

相關文章
相關標籤/搜索