使用Java中的BigInteger实现进制转换主要涉及以下步骤:
1.创建BigInteger对象:首先,你需要创建一个BigInteger对象,表示你要转换的数字。可以使用BigInteger的构造函数来创建对象,例如:
BigInteger number = new BigInteger("12345");
这将创建一个BigInteger对象,表示十进制数12345。
2.转换为其他进制:一旦你有了BigInteger对象,你可以使用其提供的方法将其转换为其他进制的字符串表示。常用的方法包括:
- toString(int radix):将BigInteger对象转换为指定进制(radix)的字符串表示。例如,将十进制转换为二进制可以使用number.toString(2)。
- toString():如果不指定进制参数,toString()方法默认将BigInteger对象转换为十进制字符串表示。
举几个例子:
1.十进制转二进制和十六进制:
import java.math.BigInteger;
public class DecimalConversion {
public static void main(String[] args) {
int decimalNumber = 1234; // 十进制数
// 十进制转换为二进制
String binaryString = Integer.toBinaryString(decimalNumber);
System.out.println("Binary: " + binaryString);
// 十进制转换为十六进制
String hexString = Integer.toHexString(decimalNumber);
System.out.println("Hexadecimal: " + hexString);
}
}
2.十六进制转二进制和十进制:
import java.math.BigInteger;
public class HexadecimalConversion {
public static void main(String[] args) {
String hexString = "1A7"; // 十六进制字符串
// 十六进制转换为二进制
BigInteger hexBigInt = new BigInteger(hexString, 16);
String binaryString = hexBigInt.toString(2);
System.out.println("Binary: " + binaryString);
// 十六进制转换为十进制
String decimalString = hexBigInt.toString(10);
System.out.println("Decimal: " + decimalString);
}
}
3.八进制转十进制和二进制:
import java.math.BigInteger;
public class OctalConversion {
public static void main(String[] args) {
String octalString = "755"; // 八进制字符串
// 八进制转换为十进制
BigInteger octalBigInt = new BigInteger(octalString, 8);
String decimalString = octalBigInt.toString(10);
System.out.println("Decimal: " + decimalString);
// 八进制转换为二进制
String binaryString = octalBigInt.toString(2);
System.out.println("Binary: " + binaryString);
}
}
4.二进制转十进制和十六进制:
import java.math.BigInteger;
public class BaseConversion {
public static void main(String[] args) {
String binaryString = "101010"; // 二进制字符串
// 将二进制字符串转换为BigInteger
BigInteger binaryBigInt = new BigInteger(binaryString, 2);
// 转换为十进制表示
String decimalString = binaryBigInt.toString();
System.out.println("Decimal: " + decimalString);
// 转换为十六进制表示
String hexString = binaryBigInt.toString(16);
System.out.println("Hexadecimal: " + hexString);
}
}
在这个示例中,首先创建了一个二进制字符串101010。然后使用BigInteger的构造函数将二进制字符串转换为BigInteger对象。接着,我们可以使用toString()方法将BigInteger对象转换为十进制字符串,或者使用toString(int radix)方法将其转换为指定进制的字符串,例如16进制。