进制表示
0b开头表示二进制0o开头表示八进制0x开头表示十六进制
var a = 0b11111111 // 255
var b = 0o377 // 255
var c = 0xFF // 255
parseInt字符转换为十进制
解析一个字符串,并返回一个整数,其中第二个参数是基数,也就是对应的进制数,取值在2 ~ 36之间。
当然我们最常用的也是2、16。如果第二个参数为0,直接当做10进制转换。
可以理解为把对应字符串当做什么进制来解析,然后返回他对应的十进制结果。
注意:
parseInt方法的结果永远是十进制结果。
var a = "255"
parseInt(a) // 255
parseInt(a, 0) // 255
parseInt(a, 10) // 255
var b = "111"
parseInt(b) // 111
// 把字符串b当做二进制解析
parseInt(b, 2) // 7
var c = "377"
parseInt(b) // 377
// 把字符串c当做八进制解析
parseInt(c, 8) // 255
var d = "FF"
parseInt(d) // NaN
parseInt(d, 2) // NaN
// 把字符串c当做十六进制处理
parseInt(d, 16) // 255
toString十进制转为其他进制
这个方法任意数字类型转换,结果为对应进制的字符串格式
var a = 255
a.toString() // "255"
a.toString(10) // "255"
a.toString(2) // "11111111"
a.toString(8) // "377"
a.toString(16) // "ff"
不同进制互转
如果你获取到一个字符串,你知道这代表的是某个进制数字,你想转为其他进制,那么需要先parseInt再toString。
下面是将八进制字符串377转为十六进制字符串ff过程。
// 假设我们得到一个字符串"377”,而且你得到确认这其实是表示一个八进制数字
var a = "377"
var b = parseInt(a, 8) // 255
var c = b.toString(16) // "ff"