分为:
- 十进制整数转二进制整数
- 十进制小数转二进制小数
先说方法
- 十进制整数转二进制整数:除2取余,逆序排列。
- 十进制小数转二进制小数,整数部分和小数部分要分别转,整数部分转换按上面的方法,小数部分转换方法:乘2取整,顺序排列。
再说原理
除2取余,逆序排列
(xxx)10 = (yyyyy)2
十进制数除2,则对应的二进制数【右移一位】;
十进制数除2后,会得到【商数】和【余数】:
- 【商数】对应【二进制数右移一位后的结果】
- 【余数】对应【二进制数低位的值】。
也就是说,十进制数每次除2后的【余数】都是二进制数低位的值,所以:除2取余,逆序排列。
乘2取整,顺序排列
(0.xxxxx)10 = (0.yyyyyy)2
十进制小数乘2,则二进制小数的【小数点右移一位】;
十进制小数乘2后,会得到【新整数部分】和【新小数部分】:
- 【新整数部分】要么是0要么是1,对应【二进制小数的小数位高位的值】
- 【新小数部分】对应【二进制小数的小数点右移一位后的新小数部分】
也就是说,十进制小数每次乘以2后的【新整数部分】都是二进制小数的小数位高位的值,所以:乘2取整,顺序排列。