欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript 关于进制之间的转换实现

程序员文章站 2024-03-18 20:54:58
...

JS要实现进制之间的转换,可以利用parseInt,toString完成。

1.n进制 – > 10进制: parseInt(string,radix)

2.n进制 – > radix进制: a.toString(radix)


  1. parseInt(string,radix) – > 能实现 n进制 – > 10进制
    string:是被解析的字符串,是必填的内容。
    radix:要解析的数字的基数,介于2~36之间,是可选填的内容。

①当radix参数被省略或者为0时,表示字符串string以10进制为基础来解析转换成10进制,

说白了,这里就是10进制转换成10进制,输出的还是10进制,没多大的意义,所以当radix省略时,我们常用parseInt(string)来实现将以数字开头的字符串转换成整型数字。

②当radix参数为n时,表示字符串string以 n 进制为基础来解析转换成10进制。

光说还是有点抽象,下面给出几个例子,结合到看,就容易明白了

    console.log(parseInt('b',16));  -- > 11
//表示将b以16进制为基底转换成10进制,16进制的b转换成10进制就是11
    console.log(parseInt('20',16));  -- > 32
//表示将20以16进制为基底转换成10进制,16进制的20转换成10进制就是11
    console.log(parseInt('1010',2));  -- > 10
//表示将1010以2进制为基底转换成10进制,2进制的1010转换成10进制就是11

再说通俗点,可以看成:string是radix进制的数,再将string转换成10进制。


  1. a.toString(radix) – > n进制 – > radix 进制
    这里的 n 取决于 a 是什么进制的数,如果 a 是10进制的数,那么 n 就是10进制数,如果 a 是16进制的数,那么 n 就是16进制数,说白了,就是将 a 转换成任意的进制数。
var a = value; //这里value是任意的值,为了下面方便,我用value一次性代替
//a=10,将a转换成16进制
console.log(a.toString(16));  -- > a 
//a=10,将a转换成2进制
console.log(a.toString(2));  -- > 1010 

//a=013,将a转换成16进制
console.log(a.toString(16));  -- > b
//a=013,将a转换成2进制
console.log(a.toString(2));  -- > 1011

//a = 0x13,将a转换成10进制
console.log(a.toString(10));  -- > 19
//a = 0x13,将a转换成8进制
console.log(a.toString(8));  -- > 23

......

注:以0开头的表示8进制,以0x开头的表示16进制,二进制没有,
所以:
要注意:二进制转换成其它进制,要先用parseInt()转换成十进制,在用toString()将转换后的十进制数转换成想要得到的进制,以二进制数”1010”为例,如果不先转换成十进制,系统会认为它是十进制数“一千零一十”,而不是二进制数“幺零幺零”。

    var num = 1010;
    console.log(num.toString(16)); -- > 3f2  //十进制数1010转换成16进制3f2
    var num2 = 1010;
    var num10 = parseInt(num2, 2);  //二进制数1010转换成10进制数10
    console.log(num10.toString(16));-- >a  //十进制数10转换成16进制数a

如有错,下方评论指出,感谢……