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.
28 lines
980 B
28 lines
980 B
1 month ago
|
function convertBase() {
|
||
|
const inputNumber = document.getElementById('inputNumber').value.trim();
|
||
|
const fromBase = parseInt(document.getElementById('fromBase').value);
|
||
|
const toBase = parseInt(document.getElementById('toBase').value);
|
||
|
|
||
|
// 验证输入数字是否符合fromBase的规则
|
||
|
if (!isValidNumber(inputNumber, fromBase)) {
|
||
|
alert('输入的数字无效!请检查其进制格式。');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// 将输入的数字从fromBase转换为十进制
|
||
|
const decimalValue = parseInt(inputNumber, fromBase);
|
||
|
|
||
|
// 将十进制数转换为toBase
|
||
|
const result = decimalValue.toString(toBase).toUpperCase();
|
||
|
document.getElementById('result').textContent = `转换结果: ${result}`;
|
||
|
}
|
||
|
|
||
|
function isValidNumber(num, base) {
|
||
|
const validChars = '0123456789ABCDEF'.slice(0, base);
|
||
|
for (let char of num.toUpperCase()) {
|
||
|
if (!validChars.includes(char)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|