function convert(num){
var result = [];
while(num){
var t = num % 26;
if(!t){
t = 26;
-- num;
}
result.push(String.fromCodePoint(t + 64));
num = ~~(num / 26);
}
return result.reverse().join('');
}
function convert (num) {
var s = ''
while (num > 0) {
var m = num % 26
if (m === 0) m = 26
s = (m + 9).toString(36) + s
num = (num - m) / 26
}
return s.toUpperCase()
}
function convert (num) {
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var len = str.length;
var carry = num;
var ret = [];
if (!num || num < 0) {
return;
}
do{
var unit = carry % len;
if (!unit) {
carry = carry -1;
unit = len;
}
ret.unshift(str.charAt(unit-1));
if (carry && carry>0) {
carry = Math.floor(carry/len)
}else{
carry = 0
}
}
while (carry);
return ret.join('');
}
这是不是leetcode上面的。。
总而言之一句话:
这样可以吗
这就是个10进制到26进制的转换而已……
没记错的话,《微机原理》或者是《C语言基础》都会讲的吧。
链接描述
我写了一个
DEMO
不过,还无法应对像BA
这种情况,算法就像上面这样。按照字符数及其值计算。具体楼主的需求可以根据上面的方式演变。// 字符串转数字 利用ascill 数字转字符也可以用这种吧
应该是这道题吧 https://leetcode.com/problems...,AC 代码 https://github.com/hanzichi/l...