在Java中,将二进制转换为十进制主要有以下两种方法:
一、使用 `Integer.parseInt()` 方法(推荐)
这是最简洁、最常用的方法,适用于已知二进制字符串的情况。
示例代码:
```java
public class BinaryToDecimal {
public static void main(String[] args) {
String binaryString = "101010"; // 二进制字符串
int decimal = Integer.parseInt(binaryString, 2); // 指定基数为2
System.out.println("十进制数: " + decimal); // 输出42
}
}
```
说明:
`Integer.parseInt(String s, int radix)` 方法将二进制字符串转换为十进制整数,第二个参数 `2` 表示二进制基数。
二、手动实现转换逻辑
通过循环逐位计算,适用于需要自定义转换过程或处理动态输入的情况。
示例代码:
```java
public class BinaryToDecimalManual {
public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
char bit = binary.charAt(i);
if (bit == '1') {
decimal += Math.pow(2, power);
}
power++;
}
return decimal;
}
public static void main(String[] args) {
String binaryString = "1101"; // 二进制字符串
int decimal = binaryToDecimal(binaryString);
System.out.println("十进制数: " + decimal); // 输出13
}
}
```
说明:
从右至左遍历二进制字符串,每位为 `1` 时乘以 `2` 的对应次方(`2^0, 2^1, ...`),并累加结果。
补充说明
输入验证:若需确保输入为有效二进制数,可结合 `Integer.parseInt()` 的异常处理机制,或手动检查每位是否为 `0` 或 `1`(如方法1中的示例)。
其他进制转换:Java还支持 `Integer.parseInt(String s, int radix)` 方法转换八进制(基数8)和十六进制(基数16)。
以上方法均可实现二进制到十进制的转换,选择时可根据具体需求(如代码简洁性、输入动态性等)决定。