
面试李组长为您分享以下优质知识
将十进制数转换为二进制数主要有以下两种方法,适用于整数和小数:
一、整数部分转换(除2取余法)
- 用2整除十进制整数,记录余数;
- 将商继续除以2,重复上述过程,直到商为0;
- 将所有余数从低位到高位逆序排列,得到二进制数。
示例
- 十进制数101转换为二进制:
- 101÷2=50余1 → 余数1
- 50÷2=25余0 → 余数0
- 25÷2=12余1 → 余数1
- 12÷2=6余0 → 余数0
- 6÷2=3余0 → 余数0
- 3÷2=1余1 → 余数1
- 1÷2=0余1 → 余数1
- 最终结果:1100101(二进制)
二、小数部分转换(乘2取整法)
步骤
- 将十进制小数乘以2,记录整数部分;
- 将小数部分继续乘以2,重复上述过程,直到小数部分为0或达到所需精度;
- 将所有整数部分按顺序排列,得到二进制小数。
示例
- 十进制小数0.75转换为二进制:
- 0.75×2=1.5 → 取整数1 → 小数0.5
- 0.5×2=1.0 → 取整数1 → 小数0.0
- 最终结果:0.11(二进制)
三、Java实现方法
Java提供`Integer`类内置方法简化转换:
整数转二进制:
`Integer.toBinaryString(num)`(如`Integer.toBinaryString(255)`返回`11111111`)
其他进制转十进制:`Integer.parseInt(num, radix)`(如`Integer.parseInt("101", 2)`返回5)
四、注意事项
小数转换:计算机采用乘2取整法,结果可能存在精度误差,需设置循环终止条件;
二进制特性:逢二进一,位权从右至左依次为2⁰、2¹、2²等,小数点后每增加一位对应2的负幂次。