十进制小数部分转化为2进制 为什么相乘??

10进制——>2进制
整数部分:重复相除2的
小数部分:重复相乘2的

为什么不一样???
查了好久才发现原来本质上是一样的…

假设一个十进制数 B
其对应的二进制数为 B= a20+b21+c22+.d2…

这个时候我们将10进制转为2进制的时候实际上就是求abcd的值

那么此时当用B除2的时候 相当对 a20+b21+c22+.d2…这个等式除2

相当于 a20/2 又因为a是2进制数不是0就是1 ,所以必然有一个余数 a存在。而等式剩下的部分b21+c22+.d2… 对应的2的幂也应该-1. 那么B/2的无限除2就能够得到abcd所有的数。

十进制数的小数此时用C表示 C是一个小数 。同理C也等于一个二进制的小数
C=a2-1+b2-2+c2-3+d…
会发现如果我们想要一个得到这个abcd…的话 必须要不停的
乘2才能把每一个2^-x次方化解。
同时由于越靠前越大所以不用倒叙直接就能得到2进制数abcd…

**为什么不能准确用2进制数准确表示10进制的小数部分?
整数部分:
因为整数除2能出尽

小数部分:
一个小数乘以2不一定能得到,一个小数部分是0的整数。
以0.2为例子:
0.2x2=0.4…0
0.4x2=0.8…0
0.8x
2=1.6…1
0.6x2=1.2…1
0.2x
2=0.4…0
.
.
.
.

.又回来了 所以不能够准确表示

原来都是一样的

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值