在Javascript中定义二进制数主要有以下两种方法:
一、二进制字面量表示法
这是最直观且推荐的方式,通过前缀 `0b` 或 `0B` 指定二进制数。例如:
```javascript
const a = 0b10; // 等于十进制的2
console.log(a); // 输出: 2
const b = 0B1011; // 等于十进制的11
console.log(b); // 输出: 11
```
注意事项:
前缀必须严格使用 `0b` 或 `0B`,否则会被解释为八进制(如 `08` 会被解析为十进制的8)。
二、十进制转二进制的方法
使用 `toString(2)` 方法
可将十进制数转换为二进制字符串,语法为 `number.toString(2)`。例如:
```javascript
function decimalToBinary(decimal) {
return Number(decimal).toString(2);
}
console.log(decimalToBinary(5)); // 输出: "101"
console.log(decimalToBinary(255)); // 输出: "11111111"
```
该方法适用于需要将数值转换为字符串的场景。
使用 `parseInt()` 函数
可将二进制字符串转换为十进制数,参数需指定基数2。例如:
```javascript
const binaryString = "1010";
const decimalNumber = parseInt(binaryString, 2);
console.log(decimalNumber); // 输出: 10
```
补充说明
位操作实现转换
通过位操作(如按位与、右移等)也可以实现转换,但通常不如 `toString(2)` 简洁。例如:
```javascript
function decimalToBinaryManual(n) {
let binary = '';
while (n > 0) {
binary = (n % 2).toString() + binary;
n = Math.floor(n / 2);
}
return binary;
}
console.log(decimalToBinaryManual(30)); // 输出: "11110"
```
但此方法适用于教学或特殊场景,实际开发中推荐使用内置方法。
以上方法可根据具体需求灵活选择,二进制字面量适合直接定义,`toString(2)` 适合需要字符串结果的场景,而位操作则适用于底层逻辑处理。