我们可以看到int在内存中有4个字节,即32位,应用范围公式后,我们可以看到int -2147483648到2147483647的范围。我计算了除float和double和long double之外的所有数据类型的范围。 我不知道他们如何计算下面提到的浮动范围。
答案 0 :(得分:4)
浮点数存储为可用空间中的指数和分数。
对于将float
实现为IEEE 754值的某些系统,结果如下所示。
sign : 1 bit
exponent : 8 bits
fraction : 23 bits
指数允许数字从2 ^( - 127)(2到功率-127)到2 ^ 128(2到功率128)。
允许来自
的一系列数字5.87747E-39 3.40282E + 38
分数点给出一个分数,例如.12313
因此,对于23位的值,数字的精确度约为7位十进制数或1.19 E-7
有关详细信息,请参阅wikipedia : IEEE 754-1985
在给定系统上,<cfloat>
/ <float.h>
会给出限制。对于非基于IEEE 754的表示,您必须了解如何存储数字以计算限制。