JS实现进制转换
2017-03-05 14:21
281 查看
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用对象.toString()即可实现:
//10进制转为16进制
(10).toString(16) // =>"a"
//8进制转为16进制
(012).toString(16) // =>"a"
//16进制转为10进制
(0x16).toString(10) // =>"22"
//16进制转为8进制
(0x16).toString(8) // =>"26"
//10进制转为2进制 //=>
(1111).toString(2) // => "10001010111"
//8进制转为2进制 //=>
(01111).toString(2) //=>"1001001001"
//16进制转为2进制 //=>
(0x16).toString(2) // => "10110"
如果是其它进制转10进制,则需要用paresInt这个方法:
//2进制到10进制;
parseInt(10,2) //=>2
//2进制到10进制;
parseInt(100,2) //=>4
//16进制到10进制
parseInt(12, 16) //=>18
//8进制到10进制
parseInt(12,8); //=>10
这样显得颇为麻烦,为此我封装了一个函数,可以自由的实现进制转换:
/**
* 进制转换函数
* @param string num 待转换的进制数,如 110(二进制),26(八进制),10(十进制),AF(十六进制)
* @param Interger from 源进制 2|8|10|16
* @param Interger to 目标进制 2|8|10|16
* @return 转换结果
*/
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)); // 十进制转成二进制,1010
alert(convert(11,10,16)); // 十进制转成十六进制,b
alert(convert(1111,2,16)); // 二进制转成十六进制,f
//10进制转为16进制
(10).toString(16) // =>"a"
//8进制转为16进制
(012).toString(16) // =>"a"
//16进制转为10进制
(0x16).toString(10) // =>"22"
//16进制转为8进制
(0x16).toString(8) // =>"26"
//10进制转为2进制 //=>
(1111).toString(2) // => "10001010111"
//8进制转为2进制 //=>
(01111).toString(2) //=>"1001001001"
//16进制转为2进制 //=>
(0x16).toString(2) // => "10110"
如果是其它进制转10进制,则需要用paresInt这个方法:
//2进制到10进制;
parseInt(10,2) //=>2
//2进制到10进制;
parseInt(100,2) //=>4
//16进制到10进制
parseInt(12, 16) //=>18
//8进制到10进制
parseInt(12,8); //=>10
这样显得颇为麻烦,为此我封装了一个函数,可以自由的实现进制转换:
/**
* 进制转换函数
* @param string num 待转换的进制数,如 110(二进制),26(八进制),10(十进制),AF(十六进制)
* @param Interger from 源进制 2|8|10|16
* @param Interger to 目标进制 2|8|10|16
* @return 转换结果
*/
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)); // 十进制转成二进制,1010
alert(convert(11,10,16)); // 十进制转成十六进制,b
alert(convert(1111,2,16)); // 二进制转成十六进制,f
相关文章推荐
- js实现进制转换
- js 实现数字的进制转换
- JS实现进制转换
- 用XML+FSO+JS实现服务器端文件的选择
- js实现的单机双人象棋演示及其分析
- JS实现的碰到文字提示
- 用XML+FSO+JS实现服务器端文件的选择
- 用JS实现缩略图
- 树型目录的XML实现(二)jsp+XML+js,跟CSDN的论坛列表相同?
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- 刷新页面实现方式总结(HTML,ASP,JS)
- Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
- 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现)
- asp.net 中实现录入时提示 (web service + js 实现 )
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- 超长文章(HTML格式)自动分页,用ASP和JS实现
- 使用JS+XML(数据岛)实现分页)
- Web上JS利用XMLHTTP实现下载
- 用js实现浮点数相减
- 用 js 实现组织结构图