parent
ee6b26343b
commit
2672cb71cc
@ -0,0 +1,63 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class jinzhi {
|
||||||
|
|
||||||
|
// 将R进制数X转换为十进制
|
||||||
|
private static int toDecimal(String number, int base) {
|
||||||
|
int decimalValue = 0;
|
||||||
|
int power = 1; // 当前位的权重
|
||||||
|
|
||||||
|
for (int i = number.length() - 1; i >= 0; i--) {
|
||||||
|
char digit = number.charAt(i);
|
||||||
|
int digitValue;
|
||||||
|
|
||||||
|
if (Character.isDigit(digit)) {
|
||||||
|
digitValue = digit - '0'; // 数字字符转为整数
|
||||||
|
} else {
|
||||||
|
digitValue = Character.toUpperCase(digit) - 'A' + 10; // 字母字符转为整数
|
||||||
|
}
|
||||||
|
|
||||||
|
decimalValue += digitValue * power;
|
||||||
|
power *= base; // 更新权重
|
||||||
|
}
|
||||||
|
|
||||||
|
return decimalValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将十进制数转换为S进制
|
||||||
|
private static String fromDecimal(int number, int base) {
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
|
||||||
|
while (number > 0) {
|
||||||
|
int remainder = number % base;
|
||||||
|
if (remainder < 10) {
|
||||||
|
result.append((char) ('0' + remainder));
|
||||||
|
} else {
|
||||||
|
result.append((char) ('A' + remainder - 10));
|
||||||
|
}
|
||||||
|
number /= base;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.reverse().toString(); // 反转结果
|
||||||
|
}
|
||||||
|
|
||||||
|
// 主方法
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("请输入源进制R (2-16): ");
|
||||||
|
int baseR = scanner.nextInt();
|
||||||
|
|
||||||
|
System.out.print("请输入需要转换的数X (R进制): ");
|
||||||
|
String numberX = scanner.next();
|
||||||
|
|
||||||
|
System.out.print("请输入目标进制S (2-16): ");
|
||||||
|
int baseS = scanner.nextInt();
|
||||||
|
|
||||||
|
// 转换过程
|
||||||
|
int decimalValue = toDecimal(numberX, baseR);
|
||||||
|
String result = fromDecimal(decimalValue, baseS);
|
||||||
|
|
||||||
|
System.out.println("转换结果: " + result);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue