float和double型数据的数值范围的求法

大家帮帮忙啊,解释一下它们的数值范围的详细求法。谢。
汗~~我的意思是数值范围-3.4E-38到3.4E38的具体求法。。
崩溃,我是问3.4和38这两个数字是咋来的。

一个float型实数在内存中占4个字节,即32个二进制bit,从低位到高位依次叫第0位到第31位.这32位可以分为3个部分:符号位(第31位),阶码(第30位到第23位共8位),尾数(最低23位)。
1、符号位。最高位也就是第31位表示这个实数是正数还是负数,为0表示正数或0,为1表示负数.
2、阶码。第30位到第23位这8个二进制位表示该实数转化为规格化的二进制实数后的指数与127(127即所谓偏移量)之和即所谓阶码.
规格化的二进制实数的指数只能在-127----+127之间,所以,一个float型数的最大值在+2^127即+3.4*10^38,最小值在-2^127即-3.4*10^38.
3、尾数。其他最低的23位即第22位到第0位表示该实数转化为规格化的二进制实数后小数点以后的其余各位即所谓尾数.
Double的计算与此类似,double的符号位为63位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为-1.7*10^308~+1.7*10^308
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-27
你的意思是算指数和小数之间的算法?....
-3.4E-38就是-3.4乘10的负38次方,同里3.4E38就是3.4乘10的正38次方
然后怎么算 你懂的...
第2个回答  2011-07-26
楼主什么意思,float的有效数字是6~7位,double的是13到14位,什么叫范围的求法
相似回答