在 Java 中将十进制转换为二进制

在 Java 中将十进制转换为二进制有不同的方法。本教程演示了如何在 Java 中将十进制转换为二进制的不同方法。

我们可以使用 Java 中的按位运算符、数组和 Math.pow() 方法将十进制数转换为二进制数。

在 Java 中使用位运算符将十进制转换为二进制

位运算符通常比算术运算符工作得更快。它们还可以用于在 Java 中将十进制转换为二进制。参见示例:

package delftstack;
import java.util.Scanner;
class Delftstack {
    public void DecimalToBinary(int number) {
        // Size of the integer is 32 bits
        for (int x = number - 1; x >= 0; x--) {
            int k = number >> x;
            if ((k & 1) > 0) {
                System.out.print("1");
            }
            else {
                System.out.print("0");
            }
        }
    }
}
public class Decimal_to_Binary {
    public static void main(String[] args) {
        Delftstack Demo = new Delftstack();
        System.out.println("Please enter a number");
        Scanner New_Number = new Scanner(System.in);
        int number = New_Number.nextInt();
        System.out.println("The Input Decimal Number : " + number);
        System.out.print("The Output Binary Number : ");
        Demo.DecimalToBinary(number);
    }
}

上面的代码将输入一个十进制数字并将该数字转换为二进制。查看输出:

Please enter a number
50
The Input Decimal Number : 50
The Output Binary Number : 00000000000011001000000000000000000000000000110010

在 Java 中使用数组将十进制转换为二进制

按照以下步骤使用 Java 中的数组将十进制数转换为二进制数。

  • 首先,将数字除以 2 时的余数存储在数组中。
  • 接下来,将数字除以二。
  • 然后,我们将重复上述步骤,直到数字大于 0。
  • 最后,以相反的顺序打印数组。

让我们根据上述步骤尝试一个示例。

package delftstack;
import java.io.*;
import java.util.Scanner;
class Decimal_to_Binary {
    static void DecimalToBinary(int number) {
        // an array which will store the binary number
        int[] Binary_Number = new int[1000];
        int x = 0;
        while (number > 0) {
            // store the remainder in the array
        	Binary_Number[x] = number % 2;
            number = number / 2;
            x++;
        }
        // print the final array in reverse order
        for (int y = x - 1; y >= 0; y--)
        System.out.print(Binary_Number[y]);
    }
    public static void main (String[] args) {
        System.out.println("Please enter a number");
        Scanner New_Number = new Scanner(System.in);
        int number = New_Number.nextInt();
        System.out.println("The Input Decimal Number :" + number);
        System.out.print("The Output Binary Number : ");
        DecimalToBinary(number);
    }
}

上面的代码将输入一个十进制数字并将该数字转换为二进制。见输出:

Please enter a number
33
The Input Decimal Number :33
The Output Binary Number : 100001

在 Java 中使用 Math.pow() 将十进制转换为二进制

Math.pow() 方法还可以将十进制数转换为二进制数。让我们尝试一个例子。

package delftstack;
import java.io.*;
import java.util.Scanner;
public class Decimal_to_Binary {
	static int DecimalToBinary(int number) {
        int Binary_number = 0;
        int count = 0;
        while (number != 0) {
            int remainder = number % 2;
            double temp = Math.pow(10, count);
            Binary_number += remainder * temp;
            number /= 2;
            count++;
        }
        return Binary_number;
    }
    public static void main(String[] args) {
    	System.out.println("Please enter a number");
        Scanner New_Number = new Scanner(System.in);
        int number = New_Number.nextInt();
        System.out.println("The Input Decimal Number : " + number);
        System.out.print("The Output Binary Number : ");
        System.out.println(DecimalToBinary(number));
    }
}

上面的代码将输入一个十进制数字并将该数字转换为二进制。见输出:

Please enter a number
65
The Input Decimal Number : 65
The Output Binary Number : 1000001