
教海导航为您分享以下优质知识
在Javascript中,将二进制转换为其他进制或处理二进制数据的方法如下:
一、十进制转二进制
使用 `toString(2)` 方法
最常用且简洁的方法,适用于正整数和负整数,返回二进制字符串(负数以补码形式表示)。
```javascript
const decimal = 10;
const binary = decimal.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"
```
二、其他进制转换
通用方法
使用 `toString(radix)` 方法,`radix` 可为2-36,支持任意进制转换。
```javascript
const hex = 255.toString(16); // 输出: "ff"
const octal = 100.toString(8); // 输出: "144"
```
二进制转十进制
使用 `parseInt(binary, 2)` 方法,将二进制字符串转换为十进制数。
```javascript
const binary = "1010";
const decimal = parseInt(binary, 2); // 输出: 10
```
三、字符串转二进制
逐字符转换
通过 `charCodeAt()` 获取字符的ASCII码,再使用 `toString(2)` 转换为二进制,最后拼接成完整二进制字符串。
```javascript
function strToBinary(str) {
return str.split('').map(char =>
char.charCodeAt(0).toString(2)).join('');
}
console.log(strToBinary("A")); // 输出: "1010"
```
使用 `ArrayBuffer` 和编码/解码
适用于处理二进制数据(如图像、文件等),通过 `TextEncoder` 和 `TextDecoder` 进行编码和解码。
四、注意事项
`toString(2)` 返回的二进制字符串不包含前导零。
位操作方法仅适用于整数,字符串转换需逐字符处理。