JS实现进制转换

本文详细介绍了JavaScript中不同进制间的转换方法,包括2进制、8进制、10进制和16进制之间的转换。通过使用内置函数toString()和parseInt(),并提供了一个封装好的函数来简化转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值