js中的进制转换
js中的进制转换

js中的进制转换

js本身可以很简单的做任意进制的转化

核心函数是:

parseInt(string, [radix])

numObj.toString([radix])

parseInt(str, [radix]) 将字符串 str 按照 radix 进制编码方式转换为10进制返回,radix 默认为10

parseInt(num,8); // 八进制转十进制
parseInt(num,16); // 十六进制转十进制
parseInt(num).toString(8) // 十进制转八进制
parseInt(num).toString(16) // 十进制转十六进制
parseInt(num,2).toString(8) // 二进制转八进制
parseInt(num,2).toString(16) // 二进制转十六进制
parseInt(num,8).toString(2) // 八进制转二

自定义进制转换函数:

function formatNumberRadix(n = 0, radix = 2) {
    let arr = [];
    while(n >= radix) {
        let r = n % radix; // 余数
        arr.unshift(r);
        if (r == 0) {
            n = n / radix;
        } else {
            n = (n - r) / radix;
        }
    }
    arr.unshift(n);
    reutrn arr.join('');
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注