js任意进制转换(二进制,八进制,十进制...三十六进制)

进制转换只能发生在数字上,也就是Number类型,所以要进行进制转换,那就是需要用到Number类型上的方法了,有两种方法:

  1. parseInt(string , radix)或者parseInt(string , radix),前者是全局的方法,是以前的规范,现在规范改了变成了Number下面的方法。
  2. 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进制

你可能感兴趣的:(javaScript,前端)