Java中toString转换进制
时间: 2024-10-23 11:15:14 浏览: 25
在Java中,你可以使用`Integer`、`Long`或`BigInteger`类的`toString()`方法来把数字转换成字符串,并指定进制。以下是例子:
```java
// 对于整数
int decimalNum = 123;
String binaryStr = Integer.toBinaryString(decimalNum);
System.out.println(binaryStr); // 输出 "1111011"
// 对于长整型
long hexadecimalNum = 0x1A; // 十六进制16
String hexStr = Long.toHexString(hexadecimalNum);
System.out.println(hexStr); // 输出 "1a"
// 对于大整数无法直接转换,需要借助第三方库如BigInteger
BigInteger bigNum = BigInteger.TEN.pow(3);
String octalStr = bigNum.toString(8);
System.out.println(octalStr); // 输出 "1000"
```
这里提到的方法会返回相应进制的字符串形式。需要注意的是,对于`Integer`和`Long`类,它们有固定的范围限制,超出范围的转换可能会抛出异常。
相关问题
java十六进制转换32进制
实现 Java 十六进制转换为 32 进制,可以使用以下步骤:
1. 将十六进制字符串转换为十进制整数。
2. 将十进制整数转换为 32 进制字符串。
下面是一个示例代码:
```java
public static String hexTo32(String hex) {
// 将十六进制字符串转换为十进制整数
int decimal = Integer.parseInt(hex, 16);
// 将十进制整数转换为 32 进制字符串
char[] digits = "0123456789ABCDEFGHIJKLMNOPQRSTUV".toCharArray();
int radix = 32;
StringBuilder sb = new StringBuilder();
while (decimal > 0) {
int digit = decimal % radix;
sb.append(digits[digit]);
decimal /= radix;
}
return sb.reverse().toString();
}
```
示例用法:
```java
String hex = "FF";
String str32 = hexTo32(hex);
System.out.println(str32); // 输出:1VVV
```
希望这个示例能够帮助您实现 Java 十六进制转换为 32 进制。
java算法实现十进制转换为二进制、八进制和十六进制
好的,以下是Java算法实现十进制转换为二进制、八进制和十六进制的代码示例:
```java
public class NumberConversion {
public static void main(String[] args) {
int decimalNumber = 345; // 要转换的十进制数
String binaryNumber = decimalToBinary(decimalNumber);
String octalNumber = decimalToOctal(decimalNumber);
String hexadecimalNumber = decimalToHexadecimal(decimalNumber);
System.out.println("二进制数为:" + binaryNumber);
System.out.println("八进制数为:" + octalNumber);
System.out.println("十六进制数为:" + hexadecimalNumber);
}
// 十进制转二进制
public static String decimalToBinary(int decimalNumber) {
return Integer.toBinaryString(decimalNumber);
}
// 十进制转八进制
public static String decimalToOctal(int decimalNumber) {
return Integer.toOctalString(decimalNumber);
}
// 十进制转十六进制
public static String decimalToHexadecimal(int decimalNumber) {
return Integer.toHexString(decimalNumber);
}
}
```
运行结果:
```
二进制数为:101011001
八进制数为:531
十六进制数为:159
```
以上代码中的三个转换方法都是使用Java内置的方法来实现,分别是`Integer.toBinaryString()`、`Integer.toOctalString()`和`Integer.toHexString()`。如果需要手动实现这些转换算法,可以参考以下示例代码:
```java
public class NumberConversion {
public static void main(String[] args) {
int decimalNumber = 345; // 要转换的十进制数
String binaryNumber = decimalToBinary(decimalNumber);
String octalNumber = decimalToOctal(decimalNumber);
String hexadecimalNumber = decimalToHexadecimal(decimalNumber);
System.out.println("二进制数为:" + binaryNumber);
System.out.println("八进制数为:" + octalNumber);
System.out.println("十六进制数为:" + hexadecimalNumber);
}
// 十进制转二进制
public static String decimalToBinary(int decimalNumber) {
StringBuilder binaryNumber = new StringBuilder();
while (decimalNumber > 0) {
binaryNumber.insert(0, decimalNumber % 2);
decimalNumber /= 2;
}
return binaryNumber.toString();
}
// 十进制转八进制
public static String decimalToOctal(int decimalNumber) {
StringBuilder octalNumber = new StringBuilder();
while (decimalNumber > 0) {
octalNumber.insert(0, decimalNumber % 8);
decimalNumber /= 8;
}
return octalNumber.toString();
}
// 十进制转十六进制
public static String decimalToHexadecimal(int decimalNumber) {
StringBuilder hexadecimalNumber = new StringBuilder();
while (decimalNumber > 0) {
int remainder = decimalNumber % 16;
if (remainder < 10) {
hexadecimalNumber.insert(0, remainder);
} else {
hexadecimalNumber.insert(0, (char) ('A' + remainder - 10));
}
decimalNumber /= 16;
}
return hexadecimalNumber.toString();
}
}
```
以上代码中的三个转换方法都是使用基本算法来实现的。
阅读全文