c语言浮点数存储问题:c语言浮点数在内存中的存储形态是什么样的?3个字节存储有效数字的范围为什么是6到7?

 我来答
難得當歌對酒時
2011-03-19 · TA获得超过1187个赞
知道小有建树答主
回答量:517
采纳率:100%
帮助的人:830万
展开全部
C语言的浮点数遵循 IEEE 754 标准,请查阅相应资料即可。
浮点数的含义就是小数点不是固定的,其精度也不是固定的,举例来说,C语言中的float类型占用4个字节长,这4个字节分为如下3部分:
1位符号位 8位阶码 23位尾数部分
这23位尾数才真正存储了二进制的有效位,将这23位二进制转换为十进制也就6到7位有效数字。
追问
应该是7位有效数字才是啊 怎么是6到7位呢?
追答
因为二进制只能表示一部分十进制小数,对于它能表示的数,它当然很精确,比如对于1/2^20这个小数,二进制float就能精确表示,有效数字可以达到20位。而对于它不能表示的十进制小数,精度是不确定的,我说6到7位只是保守说法,大多数情况下float都可以达到这个精度。如果总是依赖float可以表示更大的精度,那么程序可能在某些情况下得到不精确甚至不准确的结果。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式