Java 二进制转十进制

2024年10月23日 | 阅读 4 分钟

Java 的二进制转十进制过程涉及将数字的二进制表示(基数为 2)转换为其十进制表示(基数为 10)。使用 `Integer.parseInt()` 函数,该函数可将二进制文本转换为其十进制等效值,是一种常用的技术。

例如,`Integer.parseInt("1010", 2)` 将返回 10。另一种方法是使用自定义逻辑,该逻辑涉及迭代二进制数的每一位,从最低有效位开始,将其乘以 2 的幂次(由其位置决定),然后将所有乘积相加得到十进制值。这种方法提供了更大的灵活性和对转换过程的理解。

Java 二进制转十进制:`Integer.parseInt()`

`Integer.parseInt()` 方法根据给定的基数将字符串转换为整数。`parseInt()` 方法的**签名**如下:

让我们看一个在 Java 中将二进制转换为十进制的简单示例。

文件名:`BinaryToDecimalExample1.java`

输出

10

解释

此 Java 代码片段使用 `Integer.parseInt()` 方法将二进制字符串转换为其十进制等效值。最初,二进制字符串 "1010" 被赋给变量 `binaryString`。然后,使用 `Integer.parseInt(binaryString, 2)` 将此二进制字符串转换为其十进制表示,使用基数 2 表示二进制基数。最后,将获得的十进制值打印到控制台。因此,执行此代码会输出 10,代表二进制数 "1010" 的十进制等效值。

让我们看另一个 Integer.parseInt() 方法的示例。

文件名:`BinaryToDecimalExample2.java`

输出

10
21
31

解释

此 Java 代码示例展示了如何使用 `Integer.parseInt()` 方法将二进制字符串转换为其十进制等效值。在主程序中,将三个二进制字符串 "1010"、"10101" 和 "11111" 转换为十进制数字。为了表示二进制基数,基数设置为 2,并且每个二进制字符串都作为第一个输入提供给 `Integer.parseInt()`。获得的十进制数字显示在终端上。运行此代码将产生二进制值 "1010"、"10101" 和 "11111" 的十进制表示。

Java 二进制转十进制:使用自定义逻辑

另一种方法涉及自定义逻辑,您迭代二进制数的每一位,从最低有效位开始,将每一位乘以 2 的幂次(由其位置决定),然后将所有乘积相加得到十进制值。

文件名:`BinaryToDecimalExample3.java`

输出

Decimal of 1010 is: 10
Decimal of 10101 is: 21
Decimal of 11111 is: 31

解释

此 Java 代码展示了如何使用自定义逻辑将二进制数转换为其十进制等效值。`getDecimal` 方法中使用 `while` 循环来遍历每个二进制整数位。通过将每一位乘以 2 的幂次来计算其十进制值。然后通过将这些十进制数相加来计算最终的十进制等效值。代码演示了此过程,对于二进制整数 1010、10101 和 11111,运行时将产生它们相应的十进制表示。

Java 二进制转十进制:使用 `BigInteger()`

Java 中的 `BigInteger` 类提供了一种方便的方法来处理大型二进制数并将其转换为十进制。

`BigInteger(String val, int radix)` 构造函数:此构造函数从数字的字符串表示形式创建 `BigInteger` 对象。第一个参数 `val` 是数字的字符串表示形式,第二个参数 `radix` 指定字符串中使用的数字系统的基数。对于二进制转十进制,基数应设置为 2。

文件名:`BinaryToDecimalExample4.java`

输出

Decimal of 1010 is: 10
Decimal of 10101 is: 21
Decimal of 11111 is: 31

解释

在此示例中,使用 `BigInteger` 构造函数将三个二进制字符串(1010、10101 和 11111)转换为它们相应的十进制值。输入字符串是二进制格式,如第二个参数中传递的 2 所指示。然后将十进制等效值显示在控制台上。