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


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();
Javascript 相关文章推荐
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
js模仿hover的具体实现代码
Dec 30 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
详解javascript函数的参数
Nov 10 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
vue中render函数的使用详解
Oct 12 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
通过图带你深入了解vue的响应式原理
Jun 21 Javascript
原生JavaScript实现的无缝滚动功能详解
Jan 17 Javascript
利用window.name实现windowStorage代码分享
Jan 02 #Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
Jan 02 #Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
Jan 02 #Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 #Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
Jan 02 #Javascript
jQuery简单实现banner图片切换
Jan 02 #Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 #Javascript
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PDO::prepare讲解
2019/01/29 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
判断脚本加载是否完成的方法
2009/05/26 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
python列表操作之extend和append的区别实例分析
2015/07/28 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
OpenCV 边缘检测
2019/07/10 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
幼儿园中秋节活动方案
2014/02/06 职场文书
大学生社团活动总结
2014/04/26 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
家长建议怎么写
2014/05/15 职场文书
义诊活动通知
2015/04/24 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android