UNPKG

1636

Version:

Base16 to/from Base36 conversion

52 lines (46 loc) 1.09 kB
'use strict' 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) var base36 = '' var len = base16.length while (len > 0) { var 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) var base16 = '' var len = base36.length while (len > 0) { var val = parseInt(base36.substr(0,4), 36) base36 = base36.substr(4) len -= 4 base16 += addLeadZeros(val.toString(16), 5) } return stripLeadZeros(base16) } module.exports = { to36: to36, to16: to16 };