浮点数

今天看到一个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了。 数字

之因此出现这两个数字,是将一些复杂的流程精简化的结果,一切都是为了加快计算。

相关文章
相关标签/搜索