在 JavaScript 中,数字可以用不同的进制表示,包括二进制、八进制、十进制和十六进制。每种进制都有特定的表示方法和功能。下面是对 JavaScript 中 N 进制数字的详细介绍:
1. 二进制(Base 2)
二进制表示法使用 0b
或 0B
前缀。二进制数只使用 0
和 1
。
javascript
let binary = 0b1010; // 二进制10,十进制为10
console.log(binary); // 输出: 10
2. 八进制(Base 8)
在 JavaScript 中,八进制数可以使用 0o
或 0O
前缀。八进制数只使用 0-7
的数字。
javascript
let octal = 0o12; // 八进制12,十进制为10
console.log(octal); // 输出: 10
3. 十进制(Base 10)
十进制是常用的数字表示法,直接写数字即可。此进制中可以使用 0-9
的所有数字。
javascript
let decimal = 10; // 十进制10
console.log(decimal); // 输出: 10
4. 十六进制(Base 16)
十六进制数使用 0x
或 0X
前缀,并使用数字 0-9
和字母 A-F
(或 a-f
)表示。十六进制通常用于表示颜色、内存地址等。
javascript
let hexadecimal = 0xA; // 十六进制A,十进制为10
console.log(hexadecimal); // 输出: 10
5. 转换不同进制的数字
可以使用 Number
对象的方法将字符串转换为不同进制的数字。例如,parseInt
函数可将字符串解析为指定进制的整数:
javascript
let numFromBinary = parseInt("1010", 2); // 将二进制字符串转换为十进制
console.log(numFromBinary); // 输出: 10
let numFromOctal = parseInt("12", 8); // 将八进制字符串转换为十进制
console.log(numFromOctal); // 输出: 10
let numFromHex = parseInt("A", 16); // 将十六进制字符串转换为十进制
console.log(numFromHex); // 输出: 10
6. 一个经典的问题
['1','2','3','4','5','6','7','8','9'].map(parseInt)
// 它的输出是 ['1','2','3','4','5','6','7','8','9'].map(parseInt)
这个输出的原因是因为Array.prototype.map 方法 与 Number.parseInt 方法的特性造成的