本文旨在说清楚十进制整数转换成二进制用的“除二取余法”,其他转换用此举一反三即可。
核心:十进制转换成二进制关键在于确定各个位权上的系数。
- 先考虑十进制本身,如702=7×10^2 + 0×10 + 2×10^0.数字7, 0, 2分别是10^2, 10^1, 10^0 三个位权对应的系数。
- 那么反过来,给定702, 如何获取各个位权上的数字呢?
答:容易想到:702%10=2; 702/10%10=0; 702/10/10%10=7. 可以命名为“除10取余法” - 所以,同理,给定72如何获取对应二进制上各个位权之上的系数呢?答:除2取余法。
至于小数部分怎么转换,模仿上述流程。
- 对于十进制,如0.702=7×10^-1+ 0×10^-2 + 2×10^-3.
- 反过来,给定0.702怎么得到各个位权上的数字呢?
0.702×10=7.02 取新晋整数7;
0.702×10^2=70.2取新晋整数0;
0.702×10^3=702取新晋整数2.
到此结束,可以将“完全进化为整数”作为结束的标志
可以命名为“乘十取整法”。 - 同理,将0.75转换成二进制小数,应用“乘二取整法”如下:
0.75×2=1.5取新晋整数1;
0.75×2^2 = 3 = 11(B)取新晋整数1.
因为小数已经完全进化为整数。所以到此为止。0.75=0.11(B) - 注意:不是所有十进制小数都可以转化为二进制小数,该结论不是本文讨论重点,有兴趣的读者自行了解。
欢迎广提建议,期待共同进步!