1. 十进制 (Decimal)
十进制是最常用的数字系统,基数为 10。在 JavaScript 中,如果不加前缀,默认就是十进制。
let decimal = 123; // 直接表示十进制数
2. 二进制 (Binary)
二进制数使用基数为 2 的数字系统,通常用前缀 0b 或 0B 表示。
let binary = 0b1100101; // 相当于十进制的 101
3. 八进制 (Octal)
八进制数使用基数为 8 的数字系统。在 ES6 及之后的版本中,通常用前缀 0o 或 0O 表示。
let octal = 0o177; // 相当于十进制的 127
4. 十六进制 (Hexadecimal)
十六进制数使用基数为 16 的数字系统,通常用前缀 0x 或 0X 表示。
let hexadecimal = 0xFF; // 相当于十进制的 255
转换进制的方法
如果你需要将一个数字转换为不同进制的字符串表示,可以使用 Number.toString() 方法:
let decimal = 255;
// 转换为二进制字符串
let binaryString = decimal.toString(2);
// 转换为八进制字符串
let octalString = decimal.toString(8);
// 转换为十六进制字符串
let hexString = decimal.toString(16);
console.log(binaryString); // 输出 "11111111"
console.log(octalString); // 输出 "377"
console.log(hexString); // 输出 "ff"
如果你想将一个特定进制的字符串解析为数字,可以使用 parseInt() 方法:
let binStr = "1100101";
let octStr = "177";
let hexStr = "FF";
// 解析为十进制数字
let binNum = parseInt(binStr, 2);
let octNum = parseInt(octStr, 8);
let hexNum = parseInt(hexStr, 16);
console.log(binNum); // 输出 101
console.log(octNum); // 输出 127
console.log(hexNum); // 输出 255
注意事项
当使用二进制、八进制或十六进制字面量时,前缀是区分大小写的,但大小写选择并不影响实际的数值表示。
如果你在代码中使用了 0 作为前缀,后面跟着的数字将被视为八进制数(除非明确使用 0b 或 0x 等前缀)。
在早期版本的 JavaScript 中(ECMAScript 5 之前),八进制数也可以用 0 作为前缀来表示,但这容易与十进制数混淆,因此在现代 JavaScript 中推荐使用 0o。
在使用 parseInt() 时确保指定正确的基数(radix),以避免误解。
十六进制数的前缀 0x 已经被广泛接受,并且在大多数编程语言中都有所支持。