进制转换

本文最后更新于:7 个月前

实现一个函数 parse(number,radix=10)
功能:将radix(2=<radix<=10)进制的数字number转为10进制数
要求:

  1. number可以是数字也可以是字符串,如果number是小数,则只转化整数部分
  2. 数字进制不合法时,抛出异常,比如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 协议 ,转载请注明出处!