进制转换只能发生在数字上,也就是Number类型,所以要进行进制转换,那就是需要用到Number类型上的方法了,有两种方法:
- parseInt(string , radix)或者parseInt(string , radix),前者是全局的方法,是以前的规范,现在规范改了变成了Number下面的方法。
- Number.toString(radix)
但是由于大部分语言只支持八进制,十进制和十六进制的字面量数值,所以js在进行转换的时候,只能在字符串和数字类型之间转换,即只能将其他进制的字符串转换为十进制的数字,或者将十进制的数字转换为其他进制的字符串。
var a = 0xa;//0x表示十六进制,但是js会强制转换为十进制来运算,0xa == 10
var b = 010;//0开头表示八进制,同样强制转换为十进制来运算 010 = 8
a*b //= 80
一、Number.parseInt(string , radix)
这个是把字符串(只能由字母和数字组成),这个只能是由低进制转高进制,如二进制转八进制,但是八进制不能转二进制,radix表示进制,取值2~36。
Number.parseInt('010',8)//8
Number.parseInt('20',2)//NaN
二、Number.toString(radix)
这个函数只能将十进制数字转换为任意进制的字符串形式,同样,radix表示进制,取值2~36。
(10).toString(2)//"1010"转2进制
(10).toString(16)//"a" 转16进制
(1000).toString(36)//"rs" 转36进制