如何计算c ++中数据类型float的范围?

时间:2017-08-17 06:15:25

标签: c++ math type-conversion

我们可以看到int在内存中有4个字节,即32位,应用范围公式后,我们可以看到int -2147483648到2147483647的范围。我计算了除float和double和long double之外的所有数据类型的范围。 我不知道他们如何计算下面提到的浮动范围。

Ranges of different datatypes in c++

1 个答案:

答案 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的表示,您必须了解如何存储数字以计算限制。