进制转换
本文最后更新于:7 个月前
实现一个函数 parse(number,radix=10)
功能:将radix(2=<radix<=10)进制的数字number转为10进制数
要求:
- number可以是数字也可以是字符串,如果number是小数,则只转化整数部分
- 数字进制不合法时,抛出异常,比如232不可能是3进制数
比如:
parse(56.6) // 56
parse(56,7) //41
parse(56,8) //46
parse(56,6) // 抛出异常,Invalid number or radix
function parse(number,radix=10){
let res=0,index=0;
number=Math.floor(number);
while(number!==0){
let remainder = number%10;
number-=remainder;
number/=10;
if(remainder>=radix){
throw new Error('Invalid number or radix');
}else{
res+=remainder*Math.pow(radix,index);
}
index++;
}
return res;
}
console.log(parse(56.6))
console.log(parse(56,7))
console.log(parse(56,8))
console.log(parse(56,9))
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!