十进制转二进制
核心原理:
除2取余,逆序排列:将十进制数不断除以2,记录每次的余数(0或1),最后将所有余数从下往上逆序排列。
实现方案:
1、递归法: 代码简洁
function decimalToBinary(num) {
if (num === 0) return '0';
if (num === 1) return '1';
return decimalToBinary(Math.floor(num / 2)) + (num % 2);
}
// decimalToBinary(10) → "1010"
时间复杂度O(log n); 空间复杂度O(log n)
2、位运算(高性能): 大数处理更高效
function decimalToBinary(num) {
if (num === 0) return '0';
let binary = '';
while (num > 0) {
binary = (num & 1) + binary; // 取最低位
num = num >>> 1; // 无符号右移
}
return binary;
}
// decimalToBinary(10) → "1010"
时间复杂度O(log n); 空间复杂度O(1)

7019

被折叠的 条评论
为什么被折叠?



