Posted in Javascript onJanuary 02, 2014
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();
利用进制转换压缩数字函数分享
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@