js中进制转换

753 阅读1分钟

JavaScript中,数字类型默认使用十进制表示,但是也可以用其他进制表示,包括二进制、八进制和十六进制。可以使用以下前缀来表示不同的进制:

  • 0b或0B表示二进制
  • 0o或0O表示八进制
  • 0x或0X表示十六进制

例如,二进制数0b1010可以转换为十进制数10:

const binaryNum = 0b1010;
console.log(binaryNum); // 10

可以使用Number.toString()方法将十进制数转换为其他进制数:

const decimalNum = 10;
const binaryString = decimalNum.toString(2); // 转换为二进制
console.log(binaryString); // "1010"

const octalString = decimalNum.toString(8); // 转换为八进制
console.log(octalString); // "12"

const hexString = decimalNum.toString(16); // 转换为十六进制
console.log(hexString); // "a"

也可以使用parseInt()函数将字符串类型的其他进制数转换为十进制数:

const decimalNum = parseInt(binaryString, 2); // 将二进制字符串转换为十进制数
console.log(decimalNum); // 10

const octalString = "12";
const decimalNum = parseInt(octalString, 8); // 将八进制字符串转换为十进制数
console.log(decimalNum); // 10

const hexString = "a";
const decimalNum = parseInt(hexString, 16); // 将十六进制字符串转换为十进制数
console.log(decimalNum); // 10

需要注意的是,使用parseInt()函数时,如果字符串的开头不是有效的数字字符,函数将返回NaN。此外,也可以使用Number()函数将字符串类型的十六进制数转换为十进制数,例如:

const hexString = "a";
const decimalNum = Number("0x" + hexString); // 将十六进制字符串转换为十进制数
console.log(decimalNum); // 10