在Javascript中,将数字转换为二进制主要有以下两种方法:
一、使用 `toString()` 方法
这是最简洁且推荐的方式,通过传递基数 `2` 实现十进制到二进制的转换。
示例代码:
```javascript
let num = 10;
console.log(num.toString(2)); // 输出: "1010"
```
适用场景:
适用于所有数值类型(正数、负数、整数、浮点数)。
二、使用位操作手动转换
通过取模和移位操作实现转换,适合理解底层原理。
示例代码:
```javascript
function decimalToBinary(decimal) {
let binaryString = "";
while (decimal > 0) {
binaryString = (decimal % 2) + binaryString;
decimal = Math.floor(decimal / 2);
}
return binaryString || "0";
}
console.log(decimalToBinary(5)); // 输出: "101"
```
注意事项:
该方法仅适用于整数,且未处理负数(负数会返回二进制补码表示)。
可以通过 `Math.log2()` 结合 `Math.floor()` 进行优化,但代码复杂度较高。
补充说明
负数处理:`toString(2)` 会返回二进制补码表示,位操作方法需额外处理符号位。
性能对比:`toString(2)` 通常比位操作更高效,建议优先使用。
以上方法均可满足日常需求,根据具体场景选择合适的方式即可。