在Java中,将二进制转换为其他进制或数值类型的方法如下:
一、二进制转十进制
使用`Integer.parseInt`方法 适用于固定长度的二进制字符串(如"10011100")。
```java
String binaryStr = "10011100";
int decimal = Integer.parseInt(binaryStr, 2);
System.out.println(decimal); // 输出 156
```
使用`Integer.valueOf`方法
支持带前缀的十六进制字符串(如"0xFF")。
```java
String hexStr = "0xFF";
int decimal = Integer.valueOf(hexStr, 16);
System.out.println(decimal); // 输出 -255(有符号数)
```
二、二进制转八进制
使用`Integer.toOctalString`方法
适用于二进制字符串(如"10011100")。
```java
String binaryStr = "10011100";
String octalStr = Integer.toOctalString(Integer.parseInt(binaryStr, 2));
System.out.println(octalStr); // 输出 304
```
三、二进制转十六进制
使用`Integer.toHexString`方法
适用于二进制字符串(如"10011100")。
```java
String binaryStr = "10011100";
String hexStr = Integer.toHexString(Integer.parseInt(binaryStr, 2));
System.out.println(hexStr); // 输出 FF
```
四、其他注意事项
整数范围限制: 上述方法适用于`int`类型(-2^31 到 2^31-1),超出范围需使用`Long`类型(`Long.toBinaryString`等)。 非整数转换
示例代码汇总
```java
public class BinaryConverter {
public static void main(String[] args) {
String binaryStr = "10011100";
// 转换为十进制
int decimal = Integer.parseInt(binaryStr, 2);
System.out.println("十进制: " + decimal);
// 转换为八进制
String octalStr = Integer.toOctalString(Integer.parseInt(binaryStr, 2));
System.out.println("八进制: " + octalStr);
// 转换为十六进制
String hexStr = Integer.toHexString(Integer.parseInt(binaryStr, 2));
System.out.println("十六进制: " + hexStr);
// 转换为二进制字符串(不改变值)
String binaryStr2 = Integer.toBinaryString(decimal);
System.out.println("二进制字符串: " + binaryStr2);
}
}
```
通过以上方法,可灵活实现二进制与其他进制之间的转换。