如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 18:56:44
如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?

如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?

如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
float是32位浮点数第一位是符号位,1表示负数,0为正,设这一位为a,接着8位为尾数,尾数首位为符号位设为b,后7位是数据设这个数为c,接下来23位为阶码假设为d.最后结果就是 (-1)^a * d*2^-23 * (-1)^b*2^(c)
其中a,b只有0,1两个值,d为23位二进制码 当d全为1,d*2^-23=0.34(约等于),c最大值为127,2^(127)=10^39
所以取值范围是 ( +- 3.4)*10^(+-38),23位阶码有效数字换成10进制最多7位,所以精度较低.
其他的算法都一样,只是double得是11位尾数,52位阶数,范围更大精度更高.