
时光如梦为您分享以下优质知识
在Java中,二进制转十进制主要有以下两种方法:
一、使用内置方法(推荐)
Java提供了`Integer`类的`parseInt`方法,可快速完成转换。该方法接受两个参数:二进制字符串和基数(2)。
示例代码:
```java
import java.util.Scanner;
public class BinaryToDecimal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入二进制数:");
String binaryString = scanner.nextLine();
int decimal = Integer.parseInt(binaryString, 2);
System.out.println("十进制结果:" + decimal);
}
}
```
优点:
简单易用,代码简洁
支持处理大整数(受`int`类型限制)
二、手动实现转换逻辑
通过逐位计算二进制数的十进制值,适用于学习算法或处理特殊需求。
示例代码:
```java
public class BinaryToDecimalManual {
public int binaryToDecimal(int binaryNumber) {
int decimal = 0;
int power = 0;
while (binaryNumber >
0) {
int digit = binaryNumber % 10;
if (digit != 0 && digit != 1) {
throw new IllegalArgumentException("输入的不是二进制数");
}
decimal += digit * Math.pow(2, power);
binaryNumber /= 10;
power++;
}
return decimal;
}
public static void main(String[] args) {
BinaryToDecimal converter = new BinaryToDecimalManual();
System.out.println("1101 转十进制:" + converter.binaryToDecimal(1101));
}
}
```
步骤说明:
1. 从右至左遍历二进制数的每一位
2. 将每一位数字乘以2的位数次方(0次方、1次方、2次方……)
3. 将所有结果相加得到十进制数
注意事项:
需处理输入验证,确保二进制数仅包含0和1
适用于小整数转换,大数需使用`Long`类型或`BigInteger`
总结
优先使用`Integer.parseInt`方法,代码简洁高效;若需自定义逻辑或处理特殊场景,可手动实现转换。