10进制与62进制相互转换

本文最后更新于:2023年3月30日 下午

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* @file: 10进制与62进制相互转换
* @author 沈萬三
* @date: 2015-09-15
*/
define(function() {
var syshift = {};
// 防止重复出现相同ID;
var temp = -100000;
var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ';
/**
* 10进制转换为62进制
* @param {number} num 形参10进制数字
* @return {string} 返回值是一个时间毫秒数转换的62进制字符串
*/
syshift.sys10to62 = function(num) {
var charsSrr = chars.split('');
var radix = chars.length;
var qutient = +num;
var arr = [];
do {
mod = qutient % radix;
qutient = (qutient - mod) / radix;
arr.unshift(chars[mod]);
} while (qutient);
return arr.join('');
};

/**
* 62进制转换为10进制
* @param {Object} number_code 形参62进制数字
* @return {number} 返回值是一个62进制字符串转换的数字
*/
syshift.sys62to10 = function(numberCode) {
var radix = chars.length;
var numberCode = String(numberCode);
var len = numberCode.length;
var i = 0;
var originNumber = 0;
while (i < len) {
originNumber
+= Math.pow(radix, i++) * chars.indexOf(numberCode.charAt(len - i) || 0);
}
return originNumber;
};

/**
* 利用当前时间产生不同的ID
* @return {string} 返回值是一个时间毫秒数转换的62进制字符串
*/
syshift.getIdFromDate = function() {
var theDate = parseInt(new Date().getTime(), 10);
if (theDate === temp) {
theDate++;
}
else {
temp = theDate;
}
return this.sys10to62(theDate);
};

return syshift;
});

10进制与62进制相互转换
https://seven3.site/js/10进制与62进制相互转换/
作者
Seven3s
发布于
2015年9月28日
许可协议