在 JavaScript 中,可以使用以下几种方法将一个十进制字符串转为二进制:
方法一:使用 parseInt()
和 toString()
- 首先,使用
parseInt()
函数将十进制字符串转换为十进制整数。parseInt()
函数会解析传入的字符串,并根据指定的进制(默认是十进制,如果字符串以0x
开头则默认解析为十六进制等)将其转换为整数。- 例如,对于十进制字符串
"10"
,可以使用parseInt("10")
将其转换为十进制整数10
。
- 然后,使用
toString()
方法将得到的十进制整数转换为二进制字符串。toString()
方法可以将一个数字转换为指定进制的字符串表示形式。当传入参数2
时,就是将数字转换为二进制字符串。- 例如,对于十进制整数
10
,可以使用10.toString(2)
将其转换为二进制字符串"1010"
。
let decimalString = "10";
let decimalNumber = parseInt(decimalString);
let binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: 1010
方法二:使用 Number()
和 toString()
- 先使用
Number()
函数将十进制字符串转换为十进制数字。Number()
函数会尝试将传入的任何值转换为数字类型。对于可以解析为数字的字符串,它会将其转换为相应的数字。- 例如,对于十进制字符串
"10"
,使用Number("10")
会将其转换为十进制数字10
。
- 再使用
toString()
方法将得到的十进制数字转换为二进制字符串,操作同方法一。
let decimalString = "10";
let decimalNumber = Number(decimalString);
let binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: 1010
方法三:位运算(适用于整数情况)
如果要转换的十进制字符串表示的是一个整数,还可以通过位运算来实现转换为二进制。
- 先使用
parseInt()
或Number()
函数将十进制字符串转换为十进制整数,同前面的方法。 - 然后通过不断地对该整数进行右移操作(使用
>>>
无符号右移运算符),并结合&
运算符判断每一位的值,从而构建出二进制字符串。
let decimalString = "10";
let decimalNumber = parseInt(decimalString);
let binaryString = "";
for (let i = 31; i >= 0; i--) {binaryString += (decimalNumber >>> i) & 1;
}
console.log(binaryString); // 输出: 1010
在上述代码中,通过从最高位(这里假设是 31 位,对于 32 位整数情况)开始,不断右移并判断每一位的值,最终得到二进制字符串。不过这种方法相对复杂一些,在实际应用中,前两种方法使用得更为普遍。