1.js用toString方法就可以实现进制转换
// 1234 转 7 进制
console.log(Number(1234).toString(7))
Number.prototype.transform = function (base) {
let num = this;
if (num === 0) {
return "0";
}
let prefix = "";
// 如果数字小于0 保留前缀
// 转为正数操作
if (num < 0) {
prefix = "-";
num = -num;
}
//大于9的数字
const map = ["A", "B", "C", "D", "E", "F"];
let result = [];
while (num > 0) {
let rest = num % base;
num = Math.floor(num / base);
//大于9的数字用字母代替
result.push(rest > 9 ? map[rest - 10] : rest);
}
return `${prefix}${result.reverse().join("")}`;
};
const r1 = Number(-2).transform(2);
console.log(r1);