【C语言10】浮点数的存储

您所在的位置:网站首页 浮点数规则 【C语言10】浮点数的存储

【C语言10】浮点数的存储

2023-06-07 07:25| 来源: 网络整理| 查看: 265

浮点数存储

在这里插入图片描述 这是一串代码,它的作用是打印int 类型和float类型的数值,那么可以告诉我,在你第一眼看到他时,会认为答案是多少 9 9.000000 9 9.000000 可能这就是大多数人的想法,我认为在n中存储的是9.所以打印int是正常打印,打印float是只需要加小数点来表示是小数即可,但是,这种想法是错误的。我们来运行一下便可得知结果。 在这里插入图片描述 完全不一样,那么,这又是怎么一回事呢。 是因为在计算机中,整形和浮点型在存储规则上是完全不同的。

浮点数的存储介绍 先抛出一个定义

要理解这个结果,一定要搞懂浮点数在计算机内部的表示方法。 详细解读: 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。

十进制的9.0,写成二进制是1001.0 ,相当于 1.001×2^3 。 那么,按照上面V的格式,可以得出S=0,M=1.001,E=3。 那么,S=0,M=1.01,E=2。 得出公式

(-1)^0 * 1.001 * 2^3 == 9.0 这是754指定下的浮点数的表示方法,那么得知了公式,他在内存中又是如何存储的的呢。

IEEE 754规定: 对于32位的浮点数,最高的1位是符号位S,接着的8位是指数E,剩下的23位为有效数字M。 在这里插入图片描述 对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。 在这里插入图片描述 在下面解释中,我们以32位机器为参考

IEEE 754对有效数字M和指数E,还有一些特别规定。 前面说过, 1≤M



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3