双64位中最小值的位模式是什么

时间:2016-10-09 14:41:57

标签: javascript floating-point ieee-754

我认为可以放入双浮点的最小正值是

0 0000000000 00000000000000000000000000000000000000000000000000000

科学形式就是这样:

1 x 2^{-1023}

但是,this article声明:

  

如上所述,零在直线上不能直接表示   格式,由于假设领先1(我们需要指定一个   真零零尾数,产生零值)。零是一个特殊值   用所有零比特的指数字段和分数字段表示   所有零位。

那么迷你正值的模式是什么?

1 个答案:

答案 0 :(得分:4)

当指数部分全为零时,数字为 subnormals denormals ,其中隐含数字为0而不是1.因此

0 00000000000 0000000000000000000000000000000000000000000000000000

为零,下一个数字为

0 00000000000 0000000000000000000000000000000000000000000000000001

是最小的正数,等于

0.0000000000000000000000000000000000000000000000000001 2 ×2 -1022 = 2 -1074 ≈5.0×10 -324

更新:那么为什么指数-1022,偏差是1023?次正规与正常浮点数的第一个binade具有相同的指数(因此1-1023 = 1022)。这使得扩散是连续的,即最大的次正规是

0.1111111111111111111111111111111111111111111111111111 <子> 2 ×2 -1022

和下一个浮点数(最小法线):

1.0000000000000000000000000000000000000000000000000000 <子> 2 ×2 -1022