利用進制轉換壓縮數(shù)字函數(shù)分享
更新時間:2014年01月02日 14:02:45 作者:
本文主要介紹了進制轉換函數(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();
相關文章
javascript Table 中2個列(TD)的交換實現(xiàn)代碼
非常不錯的用js控制talbe中td的位置的實現(xiàn)代碼。2009-02-02in.js 一個輕量級的JavaScript顆?;K加載和依賴關系管理解決方案
近一年來,國內外都十分熱衷于異步加載的研究,為了加快頁面的載入速度,無阻塞加載Javascript的方法和框架成為了前端開發(fā)的焦點和亮點之一。2011-07-07封裝了一個支持匿名函數(shù)的Javascript事件監(jiān)聽器
這篇文章主要介紹了支持匿名函數(shù)的Javascript事件監(jiān)聽封裝,需要的朋友可以參考下2014-06-06JS監(jiān)聽微信、支付寶等移動app及瀏覽器的返回、后退、上一頁按鈕的事件方法
這篇文章主要介紹了JS監(jiān)聽微信、支付寶等移動app及瀏覽器的返回、后退、上一頁按鈕的事件方法,需要的朋友可以參考下2016-08-08由JavaScript中call()方法引發(fā)的對面向對象繼承機制call的思考
看到這里的call()方法,以前也看過手冊,說是對象冒充的,用于繼承的。在jQuery源碼里有點亂,所以就把這部分提取出來,放在一個單獨文件中,來看看具體執(zhí)行。2011-09-09