转载自:http://blog.csdn.net/caoguo_app_android/article/details/9955743
例1:将二进制的101.111转换为十进制
101.111 = 1 * 2^-3 + 1 * 2^-2 + 1 * 2^-1 + 1 * 2^0 + 0 * 2^1 + 1 * 2^2 = 1/8 + 1/4 + 1/2 + 1 + 0 + 4 = 0.125 + 0.25 + 0.5 + 1 + 0 + 4 = 5.875
例2:将十进制的小数111.4转化为二进制
0.4的二进制:
0.4*2=0.8 取结果的的整数位置上的数是0 | 按 取整法就是取整数位上的数字)
0.8*2=1.6 取1 | 顺
0.6*2=1.2 取1 | 序
0.2*2=0.4 取0 | 写
0.4*2=0.8 取0 | 出
0.8*2=1.6 取1 |
0.6*2=1.2 取1 |
0.2*2=0.4 取0 |
0.4的二进制数是0.01100110……(循环0110)
111的二进制数1101111
因此111.4的二进制数是:1101111.01100110……
当我们对小数0.1(10) 0.2(10) 0.3(10) 0.4(10) 0.5(10) 0.6(10) 0.7(10) 0.8(10) 0.9(10)
发现只有0.5(10)不会出现循环小数,他转换成二进制是0.1(2),其余都会出现无线不循环小数。