mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-09 06:54:11 +08:00
41 lines
829 B
JavaScript
41 lines
829 B
JavaScript
/**
|
|
* 进制转换
|
|
* @param {string|number} value 要转换的值
|
|
* @param {string} fromBase 源进制
|
|
* @param {string} toBase 目标进制
|
|
* @returns {string} 转换结果
|
|
*/
|
|
function base(value, fromBase, toBase) {
|
|
const bases = {
|
|
binary: 2,
|
|
octal: 8,
|
|
decimal: 10,
|
|
hex: 16,
|
|
};
|
|
|
|
if (!(fromBase in bases)) {
|
|
throw new Error(`不支持的源进制: ${fromBase}`);
|
|
}
|
|
if (!(toBase in bases)) {
|
|
throw new Error(`不支持的目标进制: ${toBase}`);
|
|
}
|
|
|
|
// 先转为十进制
|
|
let decimal;
|
|
if (fromBase === "decimal") {
|
|
decimal = Number(value);
|
|
} else {
|
|
decimal = parseInt(String(value), bases[fromBase]);
|
|
}
|
|
|
|
// 再转为目标进制
|
|
if (toBase === "decimal") {
|
|
return String(decimal);
|
|
}
|
|
return decimal.toString(bases[toBase]);
|
|
}
|
|
|
|
module.exports = {
|
|
base,
|
|
};
|