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.
software18/jinzhizhuanhuan.java

83 lines
2.3 KiB

6 months ago
commit 800d62e6d558ef19f046ea0d70ed2c0dd74374d9
Author: 214115093 <214115093@qq.com>
Date: Thu Oct 10 14:46:20 2024 +0800
zhuanhuan
diff --git a/jinzhizhuanhuan.java b/jinzhizhuanhuan.java
new file mode 100644
index 0000000..10c0651
--- /dev/null
+++ b/jinzhizhuanhuan.java
@@ -0,0 +1,69 @@
+import java.util.Scanner;
+public class jinzhizhuanhuan {
+
+
+
+
+
+ // 将任意进制数转换为十进制数
+ public static int toDecimal(String number, int base) {
+ int decimal = 0;
+ int power = 0;
+ int len = number.length();
+
+ for (int i = len - 1; i >= 0; i--) {
+ char digit = number.charAt(i);
+ int value = Character.digit(digit, base);
+ if (value == -1) {
+ throw new IllegalArgumentException("Invalid digit for base " + base + ": " + digit);
+ }
+ decimal += value * Math.pow(base, power);
+ power++;
+ }
+
+ return decimal;
+ }
+
+ // 将十进制数转换为任意进制数
+ public static String fromDecimal(int number, int base) {
+ if (number == 0) {
+ return "0";
+ }
+
+ StringBuilder result = new StringBuilder();
+ char[] digits = "0123456789ABCDEF".toCharArray();
+
+ while (number > 0) {
+ int remainder = number % base;
+ result.insert(0, digits[remainder]);
+ number /= base;
+ }
+
+ return result.toString();
+ }
+
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+
+ // 输入原始进制和数
+ System.out.print("请输入原始进制2-16: ");
+ int sourceBase = scanner.nextInt();
+ System.out.print("请输入原始数: ");
+ String sourceNumber = scanner.next();
+
+ // 输入目标进制
+ System.out.print("请输入目标进制2-16: ");
+ int targetBase = scanner.nextInt();
+
+ // 转换并输出结果
+ try {
+ int decimal = toDecimal(sourceNumber, sourceBase);
+ String targetNumber = fromDecimal(decimal, targetBase);
+ System.out.println("转换后的数是: " + targetNumber);
+ } catch (IllegalArgumentException e) {
+ System.out.println(e.getMessage());
+ }
+
+ scanner.close();
+ }
+}
\ No newline at end of file