C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!

C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!如题,最好能给出详尽的解释,谢谢大虾了!... C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!如题,最好能给出详尽的解释,谢谢大虾了! 展开
 我来答
失落叶004
2021-06-13 · TA获得超过157个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:139万
展开全部

    今天看书也是发现了这个问题但是百度一番网上并没有想要的答案,思索后得出结果,首先浮点型是32位精度 有一个符号位8个指数位23个尾数位

关于精度的计算单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位,所以精度为6提供七位有效数字
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816
所以精度为15,提供16位有效数字。


然后关于范围的计算:范围是指数位控制的,指数位为8,有效为为7(这里涉及到余码,有兴趣的同学可以查看相关资料)所以最大范围为2^7=128 这里是指数部分 化为十进制则为

2^128=3.402823669384635E38

所以范围为3.4E-38~3.4E+38

double同理

匿名用户
2014-01-03
展开全部
float(单精度说明符),double(双精度说明符)单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-03
展开全部
Type
Minimum value
Maximum value
float
1.175494351 E – 38
3.402823466 E + 38
double
2.2250738585072014 E – 308
1.7976931348623158 E + 308
MSDN上都有
float 4字节32位,1符号位,8位的指数位,再加上23位尾数
double 8字节64位,1符号位,11位指数,52位尾数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-03
展开全部
根据“字节”算出来的啊
4个字节的2进制,与8个字节的2进制,表示的范围、数字大小、明显不一样,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-03
展开全部
float的有效数字是6~7位,double的有效数字是15~16位。。。是怎么算出来的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式