写个小函数,以递归的方式对十进制进行进制转换,使用了立即调用和闭包~~
(function (){
var numArr=[]//暂时存放在数组中
/*
num:想要转换的10进制数
want:想转换为want进制(目前不能超过10...)
return:转换后的结果
*/
function convert(num,want,firstTime=true){
if(!num){
console.log('why no num?')
return false
}
if(!want){
console.log('why no want?')
return false
}
if(firstTime){
numArr=[]
}
if(parseInt(num/want)!==0){//商不为0,则继续
numArr.push(num%want) //取模
return convert(parseInt(num/want),want,false) //把商再除以进制数
}else{
numArr.push(num) //商为0,说明小于进制数了,直接拿来用
return parseInt(numArr.reverse().join(""))
}
}
window.convert=convert
return convert
})()
convert(66,2)