float和double型数据的数值范围的求法大家帮帮忙啊,解释一下它们的数值范...
float和double型数据的数值范围的求法大家帮帮忙啊,解释一下它们的数值范围的详细求法.谢.汗~~我的意思是数值范围-3.4E-38到3.4E38的具体求法.崩溃,...
float和double型数据的数值范围的求法 大家帮帮忙啊,解释一下它们的数值范围的详细求法.谢. 汗~~我的意思是数值范围-3.4E-38到3.4E38的具体求法. 崩溃,我是问3.4和38这两个数字是咋来的.
展开
1个回答
展开全部
一个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、符号位.最高位也就是第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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询