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


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图片预加载技术(详细演示)
Mar 12 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
js循环map 获取所有的key和value的实现代码(json)
May 09 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
js使用formData实现批量上传
Mar 27 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
Aug 10 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
2006/12/14 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
接收键盘指令的脚本
2006/06/26 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python 截取 取出一部分的字符串方法
2017/03/01 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
python调用webservice接口的实现
2019/07/12 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
python实现UDP协议下的文件传输
2020/03/20 Python
New delete 与malloc free 的联系与区别
2013/02/04 面试题
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
中专自荐信
2013/10/13 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
个人承诺书
2014/03/26 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
诚信承诺书
2015/01/19 职场文书
python Polars库的使用简介
2021/04/21 Python