来自顾慧芳的问题
C语言中float书上写的取值范围是正负1.175494E-38至正负3.402823E+38这取值范围换算成小数是什么个值?E-38
C语言中float书上写的取值范围是正负1.175494E-38至正负3.402823E+38这取值范围换算成小数是什么个值?E-38
2回答
2020-09-01 01:54
C语言中float书上写的取值范围是正负1.175494E-38至正负3.402823E+38这取值范围换算成小数是什么个值?E-38
C语言中float书上写的取值范围是正负1.175494E-38至正负3.402823E+38这取值范围换算成小数是什么个值?E-38
科学计数法,E-38就是10的-38次方,E+38就是10的38次方
简单点的,1.2e-6就是0.0000012,即小数点需要往左移动6位
1.2e6或1.2e+6就是1200000,即小数点需要往右移动6位.
float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)double:1bit(符号位)11bits(指数位)52bits(尾数位)于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。float的范围为-2^128~+2^128,也即-3.40E+38~+3.40E+38;double的范围为-2^1024~+2^1024,也即-1.79E+308~+1.79E+308。