double max 作为整数 (!) 的二进制表示形式如下所示:
11111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
它的末尾有很多零(准确地说是 1024 个零)。在这 1024 个零之前是 53 个前导零。为什么是 53 个?因为这是您可以存储在double
.
重要的部分是所有这些零实际上并没有存储在双精度内。它们由指数隐含。只存储了 53 个(好吧,只有 52 个;格式也暗示了第一个)。