js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用对象.toString()即可实现:
-
- (10).toString(16)
-
- (012).toString(16)
-
- (0x16).toString(10)
-
- (0x16).toString(8)
-
- (1111).toString(2)
-
- (01111).toString(2)
-
- (0x16).toString(2)
如果是其它进制转10进制,则需要用paresInt这个方法:
-
- parseInt(10,2)
-
- parseInt(100,2)
-
- parseInt(12, 16)
-
- parseInt(12,8);
这样显得颇为麻烦,为此我封装了一个函数,可以自由的实现进制转换:
-
-
-
-
-
-
-
- function convert(num,from,to){
- var pattern=/^(2|8|10|16){1}$/;
- if(!pattern.test(from)||!pattern.test(to)){
- console.error('源进制from和目标进制to必须都为[2,8,10,16]其中的数字');
- return;
- }
-
- if(from==10){
- return parseInt(num).toString(to);
- }
-
- if(to==10){
- return parseInt(num,from);
- }
-
- return parseInt(num,from).toString(to);
- }
效果:
- alert(convert(10,10,2));
- alert(convert(11,10,16));
- alert(convert(1111,2,16));
转载来自:http://blog.csdn.net/zls986992484/article/details/60466884