十进制和26进制转换算法

王传学

关注

阅读 47

2022-03-30


背景

在Excel中,列的名称是这样一个递增序列:A、B、C、…、Z、AA、AB、AC、…、AZ、BA、BB、BC、…、BZ、CA、…、ZZ、AAA、AAB…。

我们需要将上述列名序列和以下自然数序列相互转换:1、2、3、…。

算法实现

function convert10To26(num){
var code='';
var reg = /^\\d+$/g;
if(!reg.test(num)){
return code;
}
while (num>0){
m = num % 26
if (m==0){
m = 26;
}
code = String.fromCharCode(64 + parseInt(m)) + code;
num = ( num - m ) /26;
}
return code;
}


精彩评论(0)

0 0 举报