鱼C论坛

 找回密码
 立即注册
查看: 6043|回复: 3

新手C语言,有关float型的有效值

[复制链接]
发表于 2013-8-11 05:01:04 | 显示全部楼层
本帖最后由 牡丹花下死做鬼 于 2013-8-11 08:53 编辑

loat的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位)
8bits(指数位)
23bits(尾数位)
(浮点)数值 =      尾数    ×    底数 ^ 指数,(附加正负号)
float的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
其中float的存储方式如下图所示: 20120219100849549.png
8.25,用二进制的科学计数法表示为:1.0001*23

按照上面的存储方式,符号位为:0,表示为正,指数位为:3+127=130 ,位数部分为,故8.25的存储方式如下图所示:

20120219100849549.png

上面这一堆是网上找的说实话我也没看懂希望有大牛解释(应为我看甲乙也会先应用网上的正规解释哈)说下我的理解

20120219100849549.png 不难看出你说的是对的 我的理解是 float是占4个字节 但无论是整数部分还是小数部分都是要占据空间的而他的总空间是不变的所以整数部分位数增加小数部分所能保证的精度也就减小

觉得好的话给最佳啊~

应为我也是新手所以说错了望请见谅

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-5 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表