复制代码代码如下:
função zipnum (num, radix) {
if (! zipnum.zip) {
zipnum.zip = function (inputNum) {
if (inputnum> 35) {// 用大写字母表示 36-61
return string.fromCharcode ('a'.charcodeat (0) + inputNum % 36);
} else if (inputnum> 9) {// 用小写字母表示 10-35
return string.fromCharcode ('a'.charcodeat (0) + inputNum % 10);
} outro {
retornar inputNum;
}
}
}
var quociente = num, restante, resultado;
if (radix> 36 && radix <63) {
resultado = [];
fazer {
restante = cociente % radix;
quociente = parseint (quociente / radix);
resultado.push (zipnum.zip (restante));
} while (quociente> radix);
restante = cociente % radix;
if (restante! == 0) {
resultado.push (zipnum.zip (restante));
}
resultado = resultado.Reverse (). junção ('');
} else if (radix> 1 && radix <36) {
resultado = num.toString (Radix);
} outro {
resultado = num;
Window.Console && Console.warn ('O argumento do Radix deve estar entre 2 e 62')
}
resultado de retorno;
}
function testsortnum () {
assertequals (Zipnum (61, 62), 'Z');
assertequals (zipnum (62 * 2 - 1, 62), '1z');
assertequals (zipnum (62 * 3 - 1, 62), '2z');
assertequals (Zipnum (1361182624991, 62), 'dxn5fjb');
}
testSortnum ();