跳到主要内容

Java 程序:将二进制数转换为十进制数及其逆转换

要理解这个例子,你需要了解以下 Java 编程 主题的知识:

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

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

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

十进制数是由 10 个数字组成的数字:0, 1, 2, 3, 4, 5, 6, 7, 8, 9。它们可以用基数为 10 的数制系统来表示。

18, 222, 987

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

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

class Main {

public static void main(String[] args) {

// 二进制数
long num = 110110111;

// 通过传递二进制数调用方法
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 = 十进制 439

下面是上述程序的工作原理:

将二进制数转换为十进制

示例 2:使用 parseInt() 将二进制转换为十进制

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

// 二进制数
String binary = "01011011";

// 转换为十进制
int decimal = Integer.parseInt(binary, 2);
System.out.println(binary + " in binary = " + decimal + " in decimal.");
}
}

输出

二进制 01011011 = 十进制 91.

在这里,我们使用了 Integer 类的 parseInt() 方法将二进制数转换为十进制数。## 示例 3:使用自定义方法将十进制转换为二进制

class Main {

public static void main(String[] args) {

// 十进制数
int num = 19;
System.out.println("十进制转二进制");

// 调用方法转换为二进制
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++ + ": " + n + "/2");

System.out.println("商 = " + n/2 + ", 余数 = " + remainder);
n /= 2;

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

return binaryNumber;
}
}

输出

十进制转二进制
步骤 1: 19/2
= 9, 余数 = 1
步骤 2: 9/2
= 4, 余数 = 1
步骤 3: 4/2
= 2, 余数 = 0
步骤 4: 2/2
= 1, 余数 = 0
步骤 5: 1/2
= 0, 余数 = 1

19 = 10011

以下是程序的工作原理:

将十进制数转换为二进制

示例 4:使用 toBinaryString() 将十进制转换为二进制

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

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

// 十进制数
int decimal = 91;

// 将十进制转换为二进制
String binary = Integer.toBinaryString(decimal);
System.out.println(decimal + " in decimal = " + binary + " in binary.");
}
}

输出

十进制 91 = 二进制 1011011.

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