zl程序教程

您现在的位置是:首页 >  其他

当前栏目

利用进制转换压缩数字函数分享

转换 函数 利用 分享 数字 压缩 进制
2023-06-13 09:15:15 时间

复制代码代码如下:


functionzipNum(num,radix){
    if(!zipNum.zip){
        zipNum.zip=function(inputNum){
            if(inputNum>35){//用大写字母表示36-61
                returnString.fromCharCode("A".charCodeAt(0)+inputNum%36);
            }elseif(inputNum>9){//用小写字母表示10-35
                returnString.fromCharCode("a".charCodeAt(0)+inputNum%10);
            }else{
                returninputNum;
            }
        }
    }
    varquotient=num,remainder,result;
    if(radix>36&&radix<63){
        result=[];
        do{
            remainder=quotient%radix;
            quotient=parseInt(quotient/radix);
            result.push(zipNum.zip(remainder));
        }while(quotient>radix);
        remainder=quotient%radix;
        if(remainder!==0){
            result.push(zipNum.zip(remainder));
        }
        result=result.reverse().join("");
    }elseif(radix>1&&radix<36){
        result=num.toString(radix);
    }else{
        result=num;
        window.console&&console.warn("radixargumentmustbebetween2and62")
    }
    returnresult;
}

functiontestSortNum(){
    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();