在 64 位平台中,double 的范围如下:
-2.22507e-308 ~ +2.22507e-308
-1.79769e+308 ~ +1.79769e+308
我遵循IEEE754标准并尝试通过以下等式计算双精度范围,
x = (-1)^s * (1+fraction) * 2^(exponent-bias)
所以我尝试在64位平台上进行计算,但不确定以下是否正确?
由于偏差为 1024,因此可以通过以下方式计算 double 的最大值:
(1-2^-52) * 2^(2^11 - 1024) = 2.22507e-308
好像对...
但是当我以同样的方式计算 double 的最小值时
(1-2^-52) * 2^-(1024-1)) = 1.1125369292536007e-308,
1024 -1 (minus 1 is for zero bit?))
结果不正确......所以我想知道手动计算双精度范围的正确方法是什么。
预先感谢。