创建一个类,实现十进制转换为N进制
时间: 2024-09-29 08:08:35 浏览: 34
C++实现读入二进制数并转换为十进制输出
5星 · 资源好评率100%
当你想创建一个Java类来实现十进制数到任意进制(N进制)的转换时,你可以使用`java.math.BigInteger`类配合字符串操作来完成这个任务。这是一个简单的例子:
```java
import java.math.BigInteger;
import java.util.Scanner;
public class DecimalToBaseNConverter {
public static String decimalToBaseN(int decimal, int base) {
if (decimal == 0) return "0";
BigInteger bi = BigInteger.valueOf(decimal);
StringBuilder sb = new StringBuilder();
while (!bi.equals(BigInteger.ZERO)) {
sb.append(bi.mod(base));
bi = bi.divide(BigInteger.valueOf(base));
}
// 反转结果,因为BigInteger的除法从低位开始
return sb.reverse().toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the decimal number: ");
int decimal = scanner.nextInt();
System.out.println("Enter the base (2 to 36): ");
int base = scanner.nextInt();
if (base < 2 || base > 36) {
System.out.println("Base must be between 2 and 36.");
return;
}
String result = decimalToBaseN(decimal, base);
System.out.printf("%d in base %d is: %s%n", decimal, base, result);
}
}
```
在这个类中,`decimalToBaseN` 方法接收一个十进制整数 `decimal` 和一个基数 `base`。它首先将十进制数转换为 `BigInteger` 类型,然后用循环逐步取得余数并添加到结果字符串中,直到商为零。最后反转字符串得到最终的N进制表示。
运行程序后,你可以输入一个十进制数和一个2到36之间的基数来查看转换后的结果。
如果你想要了解如何扩展这个类以支持更大的数字或更复杂的进位规则,我们可以进一步讨论。
阅读全文