返回
进制转换,JS必备!
前端
2023-09-12 19:09:55
作为程序员,我们经常会遇到需要进行进制转换的情况。比如,将十进制数转换为二进制数、八进制数或十六进制数。在 JavaScript 中,没有像 Java 或 Python 那样完善的进制转换 API,但我们可以使用两个现有的 API 来完成 36 以内的进制转换。
1. Number.prototype.toString()
Number.prototype.toString() 方法可以将数字转换为指定进制的字符串。例如:
const number = 10;
const binaryString = number.toString(2); // "1010"
const octalString = number.toString(8); // "12"
const hexString = number.toString(16); // "a"
2. parseInt()
parseInt() 函数可以将字符串转换为指定进制的数字。例如:
const binaryString = "1010";
const number = parseInt(binaryString, 2); // 10
const octalString = "12";
const number = parseInt(octalString, 8); // 10
const hexString = "a";
const number = parseInt(hexString, 16); // 10
使用这两个 API,我们可以完成 36 以内的进制转换。
示例:
将十进制数 10 转换为二进制数:
const number = 10;
const binaryString = number.toString(2);
console.log(binaryString); // "1010"
将二进制数 "1010" 转换为八进制数:
const binaryString = "1010";
const octalString = parseInt(binaryString, 2).toString(8);
console.log(octalString); // "12"
将十六进制数 "a" 转换为十进制数:
const hexString = "a";
const number = parseInt(hexString, 16);
console.log(number); // 10
注意:
- 进制转换时,只能使用 0-9 和 A-Z 这 36 个字符。
- 如果要转换的进制不在 0-36 之间,则会抛出错误。
补充:
除了这两个 API 外,还有一些第三方库可以帮助我们进行进制转换。比如,BigNumber.js 和进制转换库。这些库提供了更丰富的功能,可以满足更多复杂的进制转换需求。