首页 新闻 会员 周边

浮点数在内存中的存储方式

0
悬赏园豆:5 [已解决问题] 解决于 2019-09-02 15:23

小数:7.4
整数部分:7-->111
.4: 0.4 x 2 = 0.8 0
0.8 x 2 = 1.6 1
0.6 x 2 = 1.2 1
0.2 x 2 = 0.4 0 开始循环0110 0110 0110 0110
7.4 --> 111. 0110 0110 0110 0110
normalize: 1.110110 0110 0110 0110 x 2^2
阶码: 2 + 127(2^7 -1) = 129 --> 1000 0001
二进制:
符号位 阶码 尾数
0 100 0000 1 110 1100 1100 1100 1100 1100

这个答案和
最后一位不一样,有没有大神说明下最后一位的1,怎么不是补0,而是1了

矜持先森么么哒的主页 矜持先森么么哒 | 初学一级 | 园豆:3
提问于:2019-08-30 16:36
< >
分享
最佳答案
0

这是为了解决精度问题,所以补了1,因为是无限循环,所以编译在最后截取23位尾码的时候加了1

而且 float 的 7.4 在计算机中的十进制表示是:7.4000001 ,而不是7.4000000

收获园豆:5
Shendu.CC | 老鸟四级 |园豆:2138 | 2019-08-31 09:09

意思是,不是无限循环的时候补0,是的时候补1吗

矜持先森么么哒 | 园豆:3 (初学一级) | 2019-09-02 08:44

@矜持先森么么哒: 是的。

Shendu.CC | 园豆:2138 (老鸟四级) | 2019-09-02 13:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册