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


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 相关文章推荐
JS声明变量背后的编译原理剖析
Dec 28 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
利用JS生成博文目录及CSS定制博客
Feb 10 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 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
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
性能测试工程师的面试题
2015/02/20 面试题
个人培训自我鉴定
2014/03/28 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
运动员入场前导词
2015/07/20 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python
Python之matplotlib绘制折线图
2022/04/13 Python