根据IEEE754的规范,以64位编码的浮点数的指数为11位,尾数为52位。因此,可以编码为浮点数的较小数字应为2**(-2**10)
。我认为是正确的wikipedia page,给出了更精确的2**-1022
值,其十进制值大约为2.2250738585072014e-308
。
但是,对于Python,我可以将其用作浮点数,例如2**-1052
等。计算机的实际限制为2**-1074
。从此page of the official documentation开始,Python通常符合IEEE754。
同时,最大值为2**1023
,这是IEEE754标准给定的值。
1074+1023+1
,即2098
,不是2
的幂?binary64使用有偏指数和53位有效数字编码数字。
[有偏指数为1或更大时,值为:1.the_52_bit_encoded_“尾数” * 2 有指数-偏]]。
[当有偏指数为0时,值为:0.the_52_bit_encoded_“尾数” * 2 1-偏倚
。对于normal
值,OP是正确的主意。但是存在sub-normal数字,其数字在0.the_52_bit_encoded_“ mantissa”中具有各种前导零。最小的非零值就是0。(51_zeros)1 * 2 1-bias或2 -1074。