浮点模型和浮点宏的关系
以下模型描述了一个满足ISO/IEC 9899:2018标准最低要求的浮点表示形式。
对于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标准中单精度数和双精度数要求的浮点表示形式。
对于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 |