Java 程序:二进制数与十进制数相互转换

要理解此示例,您应了解以下Java编程主题


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

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

10 (2), 1000 (8), 11001 (25)

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

18, 222, 987

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

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

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("Binary to Decimal");
    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 in binary = 439 in decimal

上述程序的工作原理如下:

Converting Binary Number to Decimal
二进制到十进制的转换

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

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 + " in binary = " + decimal + " in decimal.");
  }
}

输出

01011011 in binary = 91 in decimal.

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


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

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

程序工作方式如下:

Converting a decimal number into binary
十进制到二进制的转换

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

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

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 + " in decimal = " + binary + " in binary.");
  }
}

输出

91 in decimal = 1011011 in binary.

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


另请阅读

在结束之前,让我们用以下挑战来检验你对 Java 程序将二进制数转换为十进制数及其反向转换的知识!你能解决以下挑战吗?

挑战

编写一个函数将二进制数转换为十进制数。

  • 返回给定二进制数的十进制等效值。
  • 例如,如果binary = 1011,则预期输出为11
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战