效果如下:
//varstr="AZ";
//for(vari=0;i<str.length;i++)trace(str.charCodeAt(i));
//charCode:0-9:(48-57);A-Z:(65-90);a-z:(97-122);
//将10进制数N转换成d进制数(以0-9,A-Z,a-z字符表示),d为2-62
functionjh_10toD(N,d){
N=Math.floor(Number(N));
d=Math.floor(Number(d));
d=d<2?2:d>62?62:d;
vars,e="";
while(N>0){
s=N%d;
if(s>35){
//36至62的数用a-z字符表示(s-36+97)
s=String.fromCharCode(s+61);
}elseif(s>9){
//10至35的数用A-Z字符表示(s-10+65)
s=String.fromCharCode(s+55);
}
e=s+e;
N=Math.floor(N/d);
}
e=e!=""?e:"0";
returne;
}
//将d进制数转换为10进制
functionjh_Dto10(str,d){
d=Math.floor(Number(d));
d=d<2?2:d>62?62:d;
varcode=0,num=0;
for(vari=0;i<str.length;i++){
code=str.charCodeAt(i);
if(code>96){
code-=61;
}elseif(code>64){
code-=55;
}else{
code-=48;
}
num+=code*Math.pow(d,str.length-1-i);
}
returnnum;
}
//测试:
in_D=62;
num1="15000";
num2=jh_10toD(num1,in_D);
bt1.onRelease=function(){
num2=jh_10toD(num1,in_D);
};
bt2.onRelease=function(){
num1=jh_Dto10(num2,in_D);
};