在 Java 中,有多种方法可以进行进制转换。
以下是一些常用的方法:
- 使用Integer类的toBinaryString()、toOctalString()和toHexString()方法:
- toBinaryString()方法将一个整数转换为二进制字符串。
- toOctalString()方法将一个整数转换为八进制字符串。
- toHexString()方法将一个整数转换为十六进制字符串。
- 示例代码:
输出结果:int decimal = 10; String binaryString = Integer.toBinaryString(decimal); System.out.println("Binary: " + binaryString); String octalString = Integer.toOctalString(decimal); System.out.println("Octal: " + octalString); String hexString = Integer.toHexString(decimal); System.out.println("Hex: " + hexString);
Binary: 1010 Octal: 12 Hex: a
- 使用Integer类的parseInt()方法:
- 这个方法是Integer类提供的静态方法,用于将字符串解析为整数。
- 可以使用第二个参数指定源字符串的进制。如果没有指定,则默认为十进制。
- 示例代码:
输出结果:String binaryString = "1010"; int decimal = Integer.parseInt(binaryString, 2); System.out.println("Decimal: " + decimal); String octalString = "12"; int decimal2 = Integer.parseInt(octalString, 8); System.out.println("Decimal: " + decimal2); String hexString = "a"; int decimal3 = Integer.parseInt(hexString, 16); System.out.println("Decimal: " + decimal3);
Decimal: 10 Decimal: 10 Decimal: 10
- 使用Integer类的toString()方法:
- 这个方法用于将一个十进制数转换为其他进制的字符串表示。
- 可以通过传递第二个参数指定要转换的进制。
- 代码示例:
输出结果:int decimal = 10; String binary = Integer.toString(decimal, 2); System.out.println("binary: " + binary); String octal = Integer.toString(decimal, 8); System.out.println("octal :" + octal); String hexadecimal = Integer.toString(decimal, 16); System.out.println("hexadecimal: " + hexadecimal);
binary: 1010 octal :12 hexadecimal: a
-
使用Integer类的valueOf() 方法:
- 这个方法是Integer类提供的静态方法,用于将字符串解析为整数对象。
- 可以使用第二个参数指定源字符串的进制。如果没有指定,则默认为十进制。
- 代码示例:
输出结果:String binaryStr = "10"; Integer binaryToDecimal = Integer.valueOf(binaryStr, 2); System.out.println("binaryToDecimal:" + binaryToDecimal); String octalStr = "10"; Integer octalToDecimal = Integer.valueOf(octalStr, 8); System.out.println("octalToDecimal: " + octalToDecimal); String hexStr = "10"; Integer hexToDecimal = Integer.valueOf(hexStr, 16); System.out.println("hexToDecimal: " + hexToDecimal);
binaryToDecimal:2 octalToDecimal: 8 hexToDecimal: 16
-
使用BigInteger类进行进制转换:
-
BigInteger类可以处理超出Integer范围的大整数。
-
BigInteger类提供了BigInteger(String val, int radix)构造方法和toString(int radix)方法,用于进行不同进制之间的转换。
-
代码示范:
import java.math.BigInteger; public class Main { public static void main(String[] args) { // 将二进制字符串 "1010" 转换为十进制大整数 String binaryString = "1010"; BigInteger decimal = new BigInteger(binaryString, 2); System.out.println("Decimal: " + decimal); // 将十进制大整数 "10" 转换为二进制字符串 BigInteger decimalNum = new BigInteger("10"); String binaryStringFromDecimal = decimalNum.toString(2); System.out.println("Binary: " + binaryStringFromDecimal); } }
输出结果:
Decimal: 10 Binary: 1010
-
注意:在进制转换过程中,需要注意数值范围的限制。例如,对于十进制数转为二进制字符串,可以使用 Long.toBinaryString() 方法来处理超出 Integer 范围的数字。进制转换方法还适用于其他基本数据类型,如 byte、short、long 等。