当前位置: C语言 -- 专题 -- 浮点模型和浮点宏的关系

浮点模型和浮点宏的关系

以下模型描述了一个满足ISO/IEC 9899:2018标准最低要求的浮点表示形式。

x = s 16 e k =1 6 f k 16 - k ,     -31 e +32

对于float类型,<float.h>头文件中对应的宏分别为:

FLT_RADIX 16
FLT_MANT_DIG 6
FLT_EPSILON 9.53674316E-07F
FLT_DECIMAL_DIG 9
FLT_DIG 6
FLT_MIN_EXP -31
FLT_MIN 2.93873588E-39F
FLT_MIN_10_EXP -38
FLT_MAX_EXP +32
FLT_MAX 3.40282347E+38F
FLT_MAX_10_EXP +38

以下模型分别描述了满足IEC 60559标准中单精度数和双精度数要求的浮点表示形式。

x f = s 2 e k =1 24 f k 2 - k ,     -125 e +128

 

x d = s 2 e k =1 53 f k 2 - k ,     -1021 e +1024

对于float类型和double类型,<float.h>头文件中对应的宏分别为:

FLT_RADIX 2
DECIMAL_DIG 17
FLT_MANT_DIG 24
FLT_EPSILON 1.19209290E-07F //十进制常量
FLT_EPSILON 0X1P-23F //十六进制常量
FLT_DECIMAL_DIG 9
FLT_DIG 6
FLT_MIN_EXP -125
FLT_MIN 1.17549435E-38F //十进制常量
FLT_MIN 0X1P-126F //十六进制常量
FLT_TRUE_MIN 1.40129846E-45F //十进制常量
FLT_TRUE_MIN 0X1P-149F //十六进制常量
FLT_HAS_SUBNORM 1
FLT_MIN_10_EXP -37
FLT_MAX_EXP +128
FLT_MAX 3.40282347E+38F //十进制常量
FLT_MAX 0X1.fffffeP127F //十六进制常量
FLT_MAX_10_EXP +38
DBL_MANT_DIG 53
DBL_EPSILON 2.2204460492503131E-16 //十进制常量
DBL_EPSILON 0X1P-52 //十六进制常量
DBL_DECIMAL_DIG 17
DBL_DIG 15
DBL_MIN_EXP -1021
DBL_MIN 2.2250738585072014E-308 //十进制常量
DBL_MIN 0X1P-1022 //十六进制常量
DBL_TRUE_MIN 4.9406564584124654E-324 //十进制常量
DBL_TRUE_MIN 0X1P-1074 //十六进制常量
DBL_HAS_SUBNORM 1
DBL_MIN_10_EXP -307
DBL_MAX_EXP +1024
DBL_MAX 1.7976931348623157E+308 //十进制常量
DBL_MAX 0X1.fffffffffffffP1023 //十六进制常量
DBL_MAX_10_EXP +308