在学习C的同时,我开始知道长双倍的范围是3.4E-4932到1.1E + 4932。这里的E是什么? 10英寸长的双倍大小。如果我假设E是10那么双倍存储数字直到小数点后的19位。
答案 0 :(得分:2)
3.4E-4932表示。浮点数和双精度数都以保持指数和尾数分开的格式存储。在你的例子中,-4392将在指数中编码,3.4将在尾数中编码,两者都作为二进制数。
请注意,IEEE浮点格式有多种范围,可用性因平台而异。有关详细信息,请参阅IEEE floating point。正如Joe Farrell所指出的,你的范围可能是x86 Extended Precision Format。该格式携带1位符号,15位二进制指数(e),偏置为-16383,以及1 + 63位二进制尾数(m)。对于标准化数字,该值计算为。
答案 1 :(得分:0)
英特尔硬件上的长双倍(或实际上任何浮点宽度)范围通常为[-∞, ∞]
。在这些端点之间,许多有限数字也是可表示的:
这意味着最小的非零长双是2 -16445 ,最大的有限长双是(2 64 -1)·2 16320 (或2 16384 -2 16320 ),其约等于问题中科学计数法中的十进制数。< / p>
有关表示的详细信息,请参阅this Wikipedia article(二进制,而非十进制)。