java如何转进制
Java 中进制转换的方法
Java 提供了多种方法进行不同进制之间的转换,包括十进制、二进制、八进制和十六进制。以下是常见的转换方法:
十进制转其他进制
使用 Integer 类的方法可以将十进制数转换为其他进制:
int decimal = 42;
String binary = Integer.toBinaryString(decimal); // 十进制转二进制
String octal = Integer.toOctalString(decimal); // 十进制转八进制
String hex = Integer.toHexString(decimal); // 十进制转十六进制
其他进制转十进制
使用 Integer.parseInt 方法可以将其他进制的字符串转换为十进制数:
String binary = "101010";
String octal = "52";
String hex = "2A";
int decimalBinary = Integer.parseInt(binary, 2); // 二进制转十进制
int decimalOctal = Integer.parseInt(octal, 8); // 八进制转十进制
int decimalHex = Integer.parseInt(hex, 16); // 十六进制转十进制
任意进制之间的转换
通过组合上述方法可以实现任意进制之间的转换:
String input = "101010"; // 二进制
int decimal = Integer.parseInt(input, 2); // 先转十进制
String hex = Integer.toHexString(decimal); // 再转十六进制
自定义进制转换
如果需要处理更大的数或自定义进制,可以使用 BigInteger 类:
String number = "101010";
BigInteger bigInt = new BigInteger(number, 2); // 二进制转BigInteger
String hex = bigInt.toString(16); // BigInteger转十六进制
格式化输出
可以使用 String.format 或 System.out.printf 格式化输出进制转换结果:

int decimal = 42;
System.out.printf("Binary: %s\n", Integer.toBinaryString(decimal));
System.out.printf("Octal: %o\n", decimal); // 直接输出八进制
System.out.printf("Hex: %x\n", decimal); // 直接输出十六进制
注意事项
- 转换时需确保输入的字符串符合目标进制的要求(如二进制只能包含 0 和 1)。
- 处理负数时需注意符号位的处理,可以使用
Integer.toUnsignedString方法。 - 对于超出
int范围的数,应使用Long或BigInteger类的方法。
以上方法涵盖了 Java 中常见的进制转换需求,可根据具体场景选择合适的方式。






