十进制转与26进制的相互转换
export function convertToTwoteenSix(num, isUpper = true) {
let str = '';
let merchant = null;
const temp = num % 26;
str += isUpper ? String.fromCharCode(temp + 97).toUpperCase() : String.fromCharCode(temp + 97);
merchant = parseInt(num / 26);
if (merchant) {
str += convertToTwoteenSix(merchant - 1, isUpper);
}
return str.split('').reverse().join('');
}
console.log(convertToTwoteenSix(0))
console.log(convertToTwoteenSix(26), fasle)
export function convertToTen(str) {
const strToLower = (arg) => {
const str = arg.split('');
for (let i = 0; i < str.length; i++) {
if (!(str[i].charAt() >= "a" && str[i].charAt() <= "z")) {
str[i] = str[i].toLowerCase();
}
}
return str.join('');
};
const lowerStr = strToLower(str);
let num = 0;
let index = 1;
for (let i = lowerStr.length - 1; i >= 0; i--) {
const val = (i !== lowerStr.length - 1) ? ((lowerStr.charCodeAt(i) - 97) % 26) + 1 : (lowerStr.charCodeAt(i) - 97) % 26;
num += val * index;
index = index * 26;
}
return num;
}
console.log(convertToTen('Ab'), convertToTen('AB'))
console.log(convertToTen('z')