You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 lines
1.1 KiB

function addLeadZeros(str, pegLength) {
if (str.length == 0) str = '0'
while ((str.length % pegLength) > 0) {
str = '0' + str;
}
return str;
}
function stripLeadZeros(str) {
while (str.length > 1 && str[0] == '0') {
str = str.substr(1);
}
return str;
}
function to36(base16) {
if (typeof base16 != 'string') return;
if (base16 == '') return '0';
base16 = addLeadZeros(base16, 5);
let base36 = '';
let len = base16.length;
while (len > 0) {
let val = parseInt(base16.substr(0,5), 16)
base16 = base16.substr(5)
len -= 5
base36 += addLeadZeros(val.toString(36), 4)
}
return stripLeadZeros(base36)
}
function to16(base36) {
if (typeof base36 != 'string') return;
if (base36 == '') return '0';
base36 = addLeadZeros(base36, 4)
let base16 = ''
let len = base36.length
while (len > 0) {
let val = parseInt(base36.substr(0,4), 36)
base36 = base36.substr(4)
len -= 4
base16 += addLeadZeros(val.toString(16), 5)
}
return stripLeadZeros(base16)
}