# Java 程序：二进制到十进制的转换

> 原文： [https://beginnersbook.com/2014/07/java-program-for-binary-to-decimal-conversion/](https://beginnersbook.com/2014/07/java-program-for-binary-to-decimal-conversion/)

将二进制数转换为十进制数有以下两种方法：

1）使用`Integer`类的[`Integer.parseInt()`方法](https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String,%20int))。

2）通过编写自己的逻辑进行转换，而无需使用任何预定义的方法。

### 方法 1：使用`Integer.parseInt()`方法进行二进制到十进制的转换

```java
import java.util.Scanner;
class BinaryToDecimal {
    public static void main(String args[]){
       Scanner input = new Scanner( System.in );
       System.out.print("Enter a binary number: ");
       String binaryString =input.nextLine();
       System.out.println("输出： "+Integer.parseInt(binaryString,2));
    }
}
```

**输出：**

```java
Enter a binary number: 1101
输出： 13

```

### 方法 2：不使用`parseInt`进行转换

```java
public class Details {

  public int BinaryToDecimal(int binaryNumber){

    int decimal = 0;
    int p = 0;
    while(true){
      if(binaryNumber == 0){
        break;
      } else {
          int temp = binaryNumber%10;
          decimal += temp*Math.pow(2, p);
          binaryNumber = binaryNumber/10;
          p++;
       }
    }
    return decimal;
  }

  public static void main(String args[]){
    Details obj = new Details();
    System.out.println("110 --> "+obj.BinaryToDecimal(110));
    System.out.println("1101 --> "+obj.BinaryToDecimal(1101));
    System.out.println("100 --> "+obj.BinaryToDecimal(100));
    System.out.println("110111 --> "+obj.BinaryToDecimal(110111));
  }
}
```

**输出：**

```java
110 --> 6
1101 --> 13
100 --> 4
110111 --> 55
```