|
|
@ -33,35 +33,8 @@ public class computer {
|
|
|
|
return decimal;
|
|
|
|
return decimal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 将十进制数转换为任意进制数
|
|
|
|
|
|
|
|
public static String fromDecimal(int decimal, int base) {
|
|
|
|
|
|
|
|
if (base < 2 || base > 16) {
|
|
|
|
|
|
|
|
throw new IllegalArgumentException("Base must be between 2 and 16");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder number = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 当十进制数大于0时,持续转换
|
|
|
|
|
|
|
|
while (decimal > 0) {
|
|
|
|
|
|
|
|
int remainder = decimal % base;
|
|
|
|
|
|
|
|
char digit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 处理0-9
|
|
|
|
|
|
|
|
if (remainder < 10) {
|
|
|
|
|
|
|
|
digit = (char) ('0' + remainder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 处理10-15(A-F)
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
digit = (char) ('A' + (remainder - 10));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
number.insert(0, digit); // 在字符串的开头插入新的字符
|
|
|
|
|
|
|
|
decimal /= base; // 更新十进制数,去掉已转换的部分
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果转换后的字符串为空(即输入的十进制数为0),则返回"0"
|
|
|
|
|
|
|
|
return number.length() == 0 ? "0" : number.toString();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
public static void main(String[] args) {
|
|
|
|
Scanner scanner = new Scanner(System.in);
|
|
|
|
Scanner scanner = new Scanner(System.in);
|
|
|
|