用于
取出时间+随机数的随机ID,二进制文本转十进制文本
//二进制文本转换位十进制文本
bit2int = function(t) {
//debugger
var nn = "", o = t;
for (; '0' !== o; ) {
var tt = 0, l = '';
for (n = 0; n < o.length; n++)
(tt = 2 * tt + parseInt(o.substr(n,1), 10)) >= 10 ? (l += '1',
tt -= 10) : l += '0';
nn = tt.toString() + nn,
o = l.slice(l.indexOf('1'))
}
return nn
}
//取随机数
rendom = function(o, n) {
if (0 === n){
t = 0,c = o;
}else{
t = o,c = n;
}
return Math.floor(t + Math.random() * (c - t))
}
//取出时间+随机数的随机ID
getRandomID = function(time) {
n = parseInt(time, 10);
o = ('0000000000000000000000' + rendom(0, 4294967295).toString(2)).slice(-22);
o = (n.toString(2) + o).slice(-63);
r = bit2int(o);
return r
}
//用法
>getRandomID("1650009057810")
<'6920639591210157534'