JS实现进制转换

来源:互联网 发布:哪个软件可以化妆 编辑:程序博客网 时间:2024/05/18 00:49

js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用对象.toString()即可实现:

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. //10进制转为16进制  
  2. (10).toString(16) // =>"a"  
  3. //8进制转为16进制  
  4. (012).toString(16) // =>"a"  
  5. //16进制转为10进制  
  6. (0x16).toString(10) // =>"22"  
  7. //16进制转为8进制  
  8. (0x16).toString(8) // =>"26"  
  9. //10进制转为2进制 //=>  
  10. (1111).toString(2) // => "10001010111"  
  11. //8进制转为2进制 //=>  
  12. (01111).toString(2) //=>"1001001001"  
  13. //16进制转为2进制 //=>  
  14. (0x16).toString(2) // => "10110"  

如果是其它进制转10进制,则需要用paresInt这个方法:

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. //2进制到10进制;  
  2. parseInt(10,2) //=>2  
  3. //2进制到10进制;  
  4. parseInt(100,2) //=>4  
  5. //16进制到10进制  
  6. parseInt(12, 16) //=>18  
  7. //8进制到10进制  
  8. parseInt(12,8); //=>10  

这样显得颇为麻烦,为此我封装了一个函数,可以自由的实现进制转换:

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * 进制转换函数 
  3.  * @param  string     num  待转换的进制数,如 110(二进制),26(八进制),10(十进制),AF(十六进制) 
  4.  * @param  Interger   from 源进制 2|8|10|16 
  5.  * @param  Interger   to   目标进制 2|8|10|16 
  6.  * @return 转换结果 
  7.  */  
  8. function convert(num,from,to){  
  9.     var pattern=/^(2|8|10|16){1}$/;  
  10.     if(!pattern.test(from)||!pattern.test(to)){  
  11.         console.error('源进制from和目标进制to必须都为[2,8,10,16]其中的数字');  
  12.         return;  
  13.     }  
  14.     //如果源进制为十进制  
  15.     if(from==10){  
  16.         return parseInt(num).toString(to);  
  17.     }  
  18.     //如果目标进制是十进制  
  19.     if(to==10){  
  20.         return parseInt(num,from);  
  21.     }  
  22.     //其他进制的转换  
  23.     return parseInt(num,from).toString(to);  
  24. }  

效果:

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. alert(convert(10,10,2));  // 十进制转成二进制,1010  
  2. alert(convert(11,10,16));  // 十进制转成十六进制,b  
  3. alert(convert(1111,2,16));  // 二进制转成十六进制,f  


转载来自:http://blog.csdn.net/zls986992484/article/details/60466884

0 0
原创粉丝点击