复制代码代码如下:
函数Zipnum(num,radix){
如果(!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);
} 别的 {
返回inputnum;
}
}
}
var商= num,余数,结果;
如果(radix> 36 && radix <63){
结果= [];
做 {
剩余=商%radix;
商= parseint(商 / radix);
result.push(zipnum.zip(剩余));
} while(商> radix);
剩余=商%radix;
如果(剩余!== 0){
result.push(zipnum.zip(剩余));
}
结果= result.reverse()。join('');
} else if(radix> 1 && radix <36){
结果= num.tostring(radix);
} 别的 {
结果= num;
window.console && console.warn('radix参数必须在2至62'之间)
}
返回结果;
}
功能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();