master
yzb 6 months ago
parent 3b5d8bfaf6
commit 7c290bf0af

@ -1,5 +1,48 @@
import java.util.Scanner;
public class demo {
// 将R进制数转换为10进制
public static int toDecimal(String number, int base) {
return Integer.parseInt(number, base);
}
// 将10进制数转换为R进制数
public static String fromDecimal(int number, int base) {
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % base;
// 对于大于9的数字用字母表示
if (remainder >= 10) {
sb.append((char) ('A' + remainder - 10));
} else {
sb.append(remainder);
}
number /= base;
}
return sb.reverse().toString(); // 反转字符串以得到正确的顺序
}
public static void main(String[] args) {
System.out.println("Hello");
Scanner scanner = new Scanner(System.in);
// 输入源进制和目标进制
System.out.print("请输入进制: ");
int sourceBase = scanner.nextInt();
System.out.print("请输入目标进制: ");
int targetBase = scanner.nextInt();
// 输入源进制数
System.out.print("请输入进制数字: ");
String sourceNumber = scanner.next();
// 转换过程
int decimalValue = toDecimal(sourceNumber, sourceBase);
String targetNumber = fromDecimal(decimalValue, targetBase);
// 输出结果
System.out.printf("转换结果: %s(%d) -> %s(%d)\n", sourceNumber, sourceBase, targetNumber, targetBase);
scanner.close();
}
}

Loading…
Cancel
Save