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

如题所述

第1个回答  2013-03-02
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位阶数,范围更大精度更高。。。。本回答被提问者采纳