十进制小数部分转化为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.8x2=1.6…1
0.6x2=1.2…1
0.2x2=0.4…0
.
.
.
.
.又回来了 所以不能够准确表示
原来都是一样的
标签:abcd,a20,进制,0.2,相乘,x2,十进制,小数 来源: https://blog.csdn.net/weixin_41773514/article/details/114727486