啥?小数转二进制

138 阅读1分钟
偶尔看到一个面试题,问0.1+0.2=?
答案不等于0.3!!!
突然想到,计算机不是人脑啊,它不认识0.1,它只认识二进制的数字。

十进制小数在计算机中如何被转换成二进制的呢?

现在有个十进制的小数是0.625,那个它是如何转换成二进制的呢?

  • 第一步 小数再乘以2

    0.625 * 2 = 1.250

    留整用余------------1

  • 第二步 用余下的小数再乘以2

    0.25 * 2 = 0.50

    留整用余------------0

  • 第三步 用余下的小数再乘以2

    0.5 * 2 = 1.0

    留整用余------------1

到此转换完成,0.625(十) = 0.101(二)