
起步向前走为您分享以下优质知识
在Javascript中,将数值或字符串转换为二进制可以通过以下几种方法实现:
一、数值转二进制
最简单的方法是使用`Number.prototype.toString()`方法,并传入参数`2`,直接将数值转换为二进制字符串。 ```javascript
let num = 12;
console.log(num.toString(2)); // 输出: "1100"
```
该方法适用于整数转换,且支持负数(以补码形式表示)。
使用`parseInt()`函数
`parseInt()`函数可以解析二进制字符串并返回十进制数,但也可用于将十进制数转换为其他进制,包括二进制。需传入两个参数:要转换的字符串和基数(如`2`表示二进制)。 ```javascript
let num = 12;
console.log(parseInt(num.toString(2), 2)); // 输出: 12
```
此方法同样支持负数转换。
二、字符串转二进制
字符编码转换
可以通过`charCodeAt()`获取字符的ASCII码,再使用`toString(2)`将每个ASCII码转换为二进制字符串,最后用`join('')`拼接完整结果。 ```javascript
let str = "你好";
let binaryStr = str.split('').map(char =>
char.charCodeAt(0).toString(2)).join('');
console.log(binaryStr); // 输出: "10010110 11100101 11101000 10011010"
```
该方法适用于单个字符的转换。
位运算实现
通过位与(`&`)、左移(`>
= 1;
}
result += binary.padStart(8, '0');
}
return result;
}
console.log(strToBinary("你好")); // 输出: "10010110 11100101 11101000 10011010"
```
该方法支持多字符转换,并确保每个字符以8位二进制表示。
三、二进制数据类型转换
二进制字符串转数值:
使用`parseInt(binaryStr, 2)`或`parseFloat(binaryStr, 2)`。 ```javascript
let binaryStr = "101010";
console.log(parseInt(binaryStr, 2)); // 输出: 42
```
数值转二进制数据类型:使用`BinaryString`(已废弃)、`Blob`、`ArrayBuffer`等类型,需结合`FileReader`读取文件或生成二进制数据。
四、注意事项
`toString(2)`返回的字符串可能包含前导零,需根据需求处理(如使用`padStart`补零)。
负数转换时,`toString(2)`会以补码形式表示,`parseInt`也能正确解析。
通过以上方法,可灵活实现数值与二进制字符串之间的转换,满足不同场景需求。