使用 Java 程序实现数字的二进制和十进制互转

在本程序中,您将学习使用 Java 中的函数将二进制数转换为十进制数,反之亦然。

要理解此示例,您应该具备以下 Java 编程的知识:

将二进制数转换为十进制数

二进制数是仅由 2 位数字组成的数字: 01。它们可以用基数 2 数字系统表示。例如,

二进制 十进制
10 2
1000 8
11001 25

十进制数是由 10 位数字组成的数字: 0123456789 。它们可以用基数 10 数字系统表示。我们常用的数字都是十进制。

在这里,我们将编写一个 Java 程序,使用内置方法和自定义方法将二进制数转换为十进制数,反之亦然。

示例 1:使用自定义方法进行二进制到十进制转换

public class Main {

  public static void main(String[] args) {

    // binary number
    long num = 110110111;

    // call method by passing the binary number
    int decimal = convertBinaryToDecimal(num);

    System.out.println("二进制到十进制:");
    System.out.println(num + " = " + decimal);
  }

  public static int convertBinaryToDecimal(long num) {
    int decimalNumber = 0, i = 0;
    long remainder;

    while (num != 0) {
      remainder = num % 10;
      num /= 10;
      decimalNumber += remainder * Math.pow(2, i);
      ++i;
    }

    return decimalNumber;
  }
}

输出

二进制到十进制:
110110111 = 39

示例 2:使用 parseInt() 进行二进制到十进制转换

public class Main {
  public static void main(String[] args) {

    // binary number
    String binary = "01011011";

    // convert to decimal
    int decimal = Integer.parseInt(binary, 2);
    System.out.println("二进制的 " + binary + " = 十进制的 " + decimal);
  }
}

输出

二进制的 01011011 = 十进制的 91

在这里,我们使用了类的 parseInt() 方法 Integer 将二进制数转换为十进制数。

示例 3:使用自定义方法进行十进制到二进制的转换

public class Main {

  public static void main(String[] args) {

    // decimal number
    int num = 19;
    System.out.println("Decimal to Binary");

    // call method to convert to binary
    long binary = convertDecimalToBinary(num);

    System.out.println("\n" + num + " = " + binary);
    }

  public static long convertDecimalToBinary(int n) {

    long binaryNumber = 0;
    int remainder, i = 1, step = 1;

    while (n!=0) {
      remainder = n % 2;
        System.out.println("Step " + step++ + ": " + n + "/2");

        System.out.println("Quotient = " + n/2 + ", Remainder = " + remainder);
        n /= 2;

        binaryNumber += remainder * i;
        i *= 10;
    }

    return binaryNumber;
    }
}

输出

Decimal to Binary
Step 1: 19/2
Quotient = 9, Remainder = 1
Step 2: 9/2
Quotient = 4, Remainder = 1
Step 3: 4/2
Quotient = 2, Remainder = 0
Step 4: 2/2
Quotient = 1, Remainder = 0
Step 5: 1/2
Quotient = 0, Remainder = 1

19 = 10011

示例 4:使用 toBinaryString() 进行十进制到二进制的转换

我们还可以使用类的 toBinaryString() 方法 Integer 将十进制数转换为二进制数。

public class Main {
  public static void main(String[] args) {

    // decimal number
    int decimal = 91;

    // convert decimal to binary
    String binary = Integer.toBinaryString(decimal);
    System.out.println("十进制的 " + decimal + " = 二进制的 " + binary);
  }
}

输出

十进制的 91 = 二进制的 1011011

在这里, toBinaryString() 方法接受一个十进制的整数参数并返回该数字的对应的二进制的字符串表示形式。