JavaScript中有两个和进制转换相关的函数,我们还经常接触,分别是parseInt
和toString
。
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)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。