进制转换Java输入十进制整数N和待转换的进制x(2、8、16),分别代表十进制N转换成二进制、八进制和十六进制,输出对应的结果。十六进制中A~F用大写字母表示。 输入格式: 输入两个整数N(十进制整数N)和x(x进制),中间用空格隔开。 输出格式: 输出对应的结果。
时间: 2024-10-18 18:16:26 浏览: 57
在Java中,你可以使用内置的`Integer`, `Byte`, 和 `Character` 类来进行这种基础的进制转换。下面是一个简单的示例函数,它接受用户输入的十进制整数`N`和目标进制`x`,然后返回对应的二进制、八进制和十六进制字符串:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入十进制整数 N 和进制 x(如 10 2):");
int N = scanner.nextInt(); // 十进制整数
int x = scanner.nextInt(); // 目标进制
String binary = Integer.toBinaryString(N);
String octal = Integer.toString(N, 8); // 使用toString方法转换八进制
String hex = toHex(N, x); // 自定义方法将十进制转十六进制
System.out.printf("二进制:%s\n", binary);
System.out.printf("八进制:%s\n", octal);
System.out.printf("十六进制:%s\n", hex);
scanner.close();
}
// 自定义方法转换十进制到十六进制
private static String toHex(int num, int radix) {
if (radix == 16) { // 判断是否是16进制
StringBuilder sb = new StringBuilder();
while (num > 0) {
int remainder = num % radix;
if (remainder < 10) {
sb.append(remainder);
} else {
sb.append((char) ('A' + remainder - 10));
}
num /= radix;
}
return sb.reverse().toString(); // 逆序输出,因为十六进制从右向左读
}
return "输入非法,只支持16进制";
}
}
```
在这个例子中,`toHex`方法会处理将十进制转换为十六进制的具体细节,并且考虑到十六进制字符的表示方式。
阅读全文