C语言中,浮点型的数值范围是如何算出来的?类型 比特数 有效数字 数值范围 float 32 7 10^-37~10^38 double 64 15~16 10^-307~10^308 long double 80 18~19 10^-4931~10^4932

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 13:17:05
C语言中,浮点型的数值范围是如何算出来的?类型 比特数 有效数字 数值范围 float 32 7 10^-37~10^38 double 64 15~16 10^-307~10^308 long double 80 18~19 10^-4931~10^4932

C语言中,浮点型的数值范围是如何算出来的?类型 比特数 有效数字 数值范围 float 32 7 10^-37~10^38 double 64 15~16 10^-307~10^308 long double 80 18~19 10^-4931~10^4932
C语言中,浮点型的数值范围是如何算出来的?
类型 比特数 有效数字 数值范围
float 32 7 10^-37~10^38
double 64 15~16 10^-307~10^308
long double 80 18~19 10^-4931~10^4932

C语言中,浮点型的数值范围是如何算出来的?类型 比特数 有效数字 数值范围 float 32 7 10^-37~10^38 double 64 15~16 10^-307~10^308 long double 80 18~19 10^-4931~10^4932
浮点型数的2进制表达方法 IEEE 754 有详细规定,各编译器参照此规定执行.

例如,符号位,指数符号位,指数位,尾数位 各几位,如何表达,NaN(不是一个数字叫NaN)如何表达, 无穷(Infinity) 如何表达,正0负0如何表达,还有 Denormalized 如何表达,Normalized 如何表达.很繁琐.

自己用的编译器规定,可以见编译器带的头文件 float.h 和 limits.h
例如:
#define LDBL_MANT_DIG 64
#define LDBL_MAX 1.189731495357231765e+4932L
#define LDBL_MAX_10_EXP 4932
#define LDBL_MIN 3.3621031431120935063e-4932L
.