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