利用進制轉(zhuǎn)換壓縮數(shù)字函數(shù)分享
更新時間:2014年01月02日 14:02:45 作者:
本文主要介紹了進制轉(zhuǎn)換函數(shù),用于壓縮數(shù)字,比如Date.now()這樣的長數(shù)字,用62進制表示,就更短,大家參考使用吧
復制代碼 代碼如下:
function 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);
} else {
return inputNum;
}
}
}
var quotient = 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('');
} else if(radix > 1 && radix < 36){
result = num.toString(radix);
} else {
result = num;
window.console && console.warn('radix argument must be between 2 and 62')
}
return result;
}
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();
相關(guān)文章
JavaScript做大整數(shù)加法計算的代碼實現(xiàn)
這篇文章主要帶大家去了解前端如何做大整數(shù)加法計算,文中通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-09-09
javascript數(shù)組中的concat方法和splice方法
這篇文章主要介紹了javascript數(shù)組中的concat方法和splice方法,concat方法作用合并數(shù)組,可以合并一個或多個數(shù)組,會返回合并數(shù)組之后的數(shù)據(jù),不會改變原來的數(shù)組,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-03-03
微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動畫效果實例
小程序日益增多的情況下,UI風格顯得越來越重要,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動畫效果的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
開源免費天氣預報接口API及全國所有地區(qū)代碼(國家氣象局提供)
這篇文章主要介紹了開源免費天氣預報接口API及全國所有地區(qū)代碼(國家氣象局提供)的相關(guān)資料,需要的朋友可以參考下2016-12-12

