头图

JavaScript中有两个和进制转换相关的函数,我们还经常接触,分别是parseInttoString

parseInt

一句话总结:parseInt可以把传入的指定进制的数转成10进制的

parseInt最为我们熟知的功能是把传入的参数转为整数,但实际上他可以传入两个参数:
parseInt(string, radix),其中radix 是 2-36 之间的整数,表示被解析字符串的基数。
当你传入第二个参数后,parseInt会把你传入的string当做radix进制的数据来看,然后把他转换成10进制的形式。
举个例子:

parseInt('101', 2) //5

当然,根据我们的习惯来看,第二个参数不是必须的。当它不传(undefined)、0 或未指定的,JavaScript 会假定以下情况:

  • 如果输入的 string 以 0x 或 0X(一个 0,后面是小写或大写的 X)开头,那么 radix 被假定为 16,字符串的其余部分被当做十六进制数去解析。
  • 如果输入的 string 以 "0"(0)开头,radix 被假定为 8(八进制)或 10(十进制)。具体选择哪一个 radix 取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用 parseInt 时,一定要指定一个 radix。
  • 如果输入的 string 以任何其他值开头,radix 是 10 (十进制)。

toString

一句话总结:toString可以把10进制的数转换成指定进制的

toString也是我们常用的一个方法,我们这里提到的toString准确的说应该是Number.prototype.toString()的,它支持传入可选一个参数:
radix,一个整数,范围在 2 到 36 之间,用于指定表示数字值的基数。默认为 10。举个例子:

var a= 10
a.toString(2) // '1010'
a.toString(8) // '12'

总结

总计一下就是,parseInt可以把n进制转换成10进制,toString可以把10进制转换成n进制的(2<=n<=36)

参考文档


aqiongbei
2k 声望281 粉丝

人生路上,你走的每一步都算数