在eclipse用Java实现设计一个能够进行各种进位计数制的转换应用程序,它将一个指定为二、八、十、十六进制的整型数据转换成另一种进制的整型数据。
时间: 2024-05-03 17:16:35 浏览: 84
下面是一个简单的Java代码示例,可以实现将指定的整型数据在不同进制之间的转换:
```java
import java.util.Scanner;
public class NumberSystemConverter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要转换的整数:");
int num = scanner.nextInt();
System.out.println("请输入要转换的进制(2/8/10/16):");
int from = scanner.nextInt();
System.out.println("请输入转换后的进制(2/8/10/16):");
int to = scanner.nextInt();
String result = convert(num, from, to);
System.out.println("转换结果为:" + result);
}
private static String convert(int num, int from, int to) {
String result = "";
if (from == 10) {
result = Integer.toString(num, to);
} else {
int decimal = toDecimal(num, from);
result = Integer.toString(decimal, to);
}
return result;
}
private static int toDecimal(int num, int from) {
String numStr = Integer.toString(num);
int len = numStr.length();
int decimal = 0;
for (int i = 0; i < len; i++) {
int digit = Integer.parseInt(numStr.substring(i, i + 1), from);
decimal += digit * Math.pow(from, len - i - 1);
}
return decimal;
}
}
```
这个程序会要求用户输入要转换的整数、要转换的进制和转换后的进制,然后调用 `convert` 方法进行转换并输出结果。在 `convert` 方法中,如果原数是十进制,则直接使用 Java 内置的 `Integer.toString()` 方法进行转换;否则先将原数转换为十进制,再使用 `Integer.toString()` 方法进行转换。在 `toDecimal` 方法中,将原数转换为十进制数。我们可以将原数转换为字符串,逐位解析出每一位数字,然后使用公式 `decimal = digit * from^(len-i-1)` 将其转换为十进制数。
阅读全文