使用递归对十进制数进行进制转换
写个小函数,以递归的方式对十进制进行进制转换,使用了立即调用和闭包~~
(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)