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


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 相关文章推荐
javascript 异常处理使用总结
Jun 21 Javascript
有效的捕获JavaScript焦点的方法小结
Oct 08 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
详谈javascript精度问题与调整
Jul 08 Javascript
JavaScript 异步调用
Oct 25 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
JavaScript中window和document用法详解
Jul 28 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
CodeIgniter钩子用法实例详解
2016/01/20 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
简单介绍python封装的基本知识
2019/08/10 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
应届大学生的推荐信
2013/11/20 职场文书
驾驶员培训方案
2014/05/01 职场文书
安全生产专项整治方案
2014/05/06 职场文书
工程负责人任命书
2014/06/06 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
HAM-2000摩机图
2021/04/22 无线电
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle