鱼C论坛

 找回密码
 立即注册
查看: 3352|回复: 4

[已解决]为什么有些十进制小数不能用有限二进制位表示呢?

[复制链接]
发表于 2018-9-5 19:18:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
                        比如 0.3d 约为 0.01001100...
最佳答案
2018-9-5 19:42:39
404NOT 发表于 2018-9-5 19:26
求一个让人信服的数学解释

浮点数 = 整数 + 小数

一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~  只是想表达一个相对的概念
整数转二进制是用除法,反之,小数转二进制是用乘法
                0.2
0.2 * 2 == 0.4
0.4 * 2 == 0.8
0.8 * 2 == 1.6  >> 0.6
0.6 * 2 == 1.2  >> 0.2

所以这里从 0.2 开始会变回 0.2,有了周期性,死循环了~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-9-5 19:26:44 | 显示全部楼层
求一个让人信服的数学解释
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-5 19:42:39 | 显示全部楼层    本楼为最佳答案   
404NOT 发表于 2018-9-5 19:26
求一个让人信服的数学解释

浮点数 = 整数 + 小数

一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~  只是想表达一个相对的概念
整数转二进制是用除法,反之,小数转二进制是用乘法
                0.2
0.2 * 2 == 0.4
0.4 * 2 == 0.8
0.8 * 2 == 1.6  >> 0.6
0.6 * 2 == 1.2  >> 0.2

所以这里从 0.2 开始会变回 0.2,有了周期性,死循环了~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-5 19:50:33 | 显示全部楼层
claws0n 发表于 2018-9-5 19:42
浮点数 = 整数 + 小数

一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~  只是想表达 ...

哈哈,我晓得,我自己想通了,就好像是 用多项式去逼近一个光滑的函数,总是存在误差的,  ~   看看还有没有人的评论给你最佳啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-5 21:22:16 | 显示全部楼层
实数有两种:有理数和无理数
无理数是永远无法精确表示的
有理数可以用最简分数来表示, 假设是p/q
若不存在n,使得10^n 为q的倍数,则以十进位表示时 其为无限循环小数
若不存在n,使得2^n 为q的倍数,则以二进位表示时 其为无限循环小数

理由应该满简单的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-5 03:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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