0.1+0.2=0.30000000000000004

看下效果

image

这个网站能找到你想要的答案
https://0.30000000000000004.com/

十进制转二进制

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:

  • 用2整除十进制整数,可以得到一个商和余数;
  • 再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止
  • 然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
除数 被除数 等于 结果 余数
127 / 2 = 63 1
63 / 2 = 31 1
31 / 2 = 15 1
15 / 2 = 7 1
7 / 2 = 3 1
3 / 2 = 1 1
1 / 2 = 0 1

最终转换成2进制的结果:1111111

十进制小数转换成二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列“法。

具体做法是:

  • 用2乘十进制小数,可以得到积
  • 将积的整数部分取出,再用2乘余下的小数部分,又得到一个积
  • 再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
乘数 乘数 等于 结果 整数部分
0.625 * 2 = 1.25 1
0.25 * 2 = 0.5 0
0.5 * 2 = 1.0 1

最终转换成2进制的结果:0.101

但不是所有的小数都可以用二进制表示,比如0.1
image

得到的结果0.000110011001100........ 出现了无限循环的情况

posted @ 2024-11-13 20:20  leepandar  阅读(5)  评论(0编辑  收藏  举报