让我们来详细讲解一下JavaScript中10进制和62进制的相互转换的攻略。
10进制转62进制
将10进制转换为62进制的过程可以分为三步:
- 将10进制数字不断除以62,记录余数,直到结果为0;
- 将余数与62个基本字符进行映射,得到对应的字符;
- 将所有字符倒序排列得到62进制字符串。
下面是代码示例:
/**
* 将10进制数字转换为62进制字符串
* @param {number} num - 10进制数字
* @returns {string} - 62进制字符串
*/
function decimalTo62(num) {
const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
let result = ''
do {
let remainder = num % 62
result += chars.charAt(remainder)
num = Math.floor(num / 62)
} while (num > 0)
return result.split('').reverse().join('')
}
// 测试
console.log(decimalTo62(100000)) // 'q0T'
console.log(decimalTo62(123456789)) // 'gc3gD1'
62进制转10进制
将62进制转换为10进制的过程可以分为两步:
- 将62进制字符串中的每个字符映射到10进制数字;
- 将每个数字乘以62的n次幂,n从0开始递增,累加起来得到10进制数字。
下面是代码示例:
/**
* 将62进制字符串转换为10进制数字
* @param {string} str - 62进制字符串
* @returns {number} - 10进制数字
*/
function base62ToDecimal(str) {
const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
let result = 0
for (let i = 0, len = str.length; i < len; i++) {
let index = chars.indexOf(str[i])
let power = len - i - 1
result += index * Math.pow(62, power)
}
return result
}
// 测试
console.log(base62ToDecimal('q0T')) // 100000
console.log(base62ToDecimal('gc3gD1')) // 123456789
以上就是JavaScript中10进制和62进制的相互转换的攻略及示例,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 10进制和62进制的相互转换 - Python技术站