
如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
1个回答
展开全部
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位阶数,范围更大精度更高。。。。
其中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位阶数,范围更大精度更高。。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询