小数的二进制转换

转载自: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),其余都会出现无线不循环小数。

你可能感兴趣的:(小数的二进制转换)