Java 十六进制转十进制

2025年2月12日 | 阅读 3 分钟

在 Java 中将十六进制转换为十进制(基数 10)可以使用 Integer.parseInt() 方法或通过实现自定义逻辑。在处理底层数据表示、颜色代码和内存地址时,通常需要此转换。

Java 十六进制转十进制:使用 Integer.parseInt() 方法

Integer.parseInt() 方法将一个字符串按给定基数转换为 int。parseInt() 方法的签名如下:

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

文件名:HexToDecimalExample1.java

输出

10

解释

HexToDecimalExample1 中提供的代码演示了如何使用 Java 的 Integer.parseInt() 函数将十六进制文本转换为十进制值。声明主类并设置主方法作为程序的入口点标志着此阶段的开始。

在 main 方法中,用字符串变量 hex 初始化一个十六进制数,其值为“a”。Integer.parseInt(hex, 16) 处理核心转换;它将字符串“a”作为十六进制值,并将其转换为其十进制对应值 10。然后使用 System.out.println(decimal) 将结果以十进制表示法打印到控制台。此示例利用 Integer 类的内置功能,展示了在 Java 中将十六进制值转换为十进制表示法的简便性和有效性。

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

文件名:HexToDecimalExample2.java

输出

10
15
289

解释

上面的代码是 HexToDecimalExample2 类的一部分,展示了如何使用 Java 的 Integer.parseInt() 方法将多个十六进制字符串转换为其十进制对应值。

入口点是 main 方法,它使用 System.out.println 打印三个十六进制字符串(“a”、“f”和“121”)的十进制值。每次调用 Integer.parseInt() 都需要一个十六进制字符串和基数 16,该函数分别将“a”转换为 10,“f”转换为 15,“121”转换为 289。这演示了如何使用 Java 的 Integer.parseInt() 函数将十六进制字符串转换为十进制数字。

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

要使用自定义逻辑将十六进制数转换为其十进制等效值,我们需要遍历十六进制字符串的每个字符,确定其十进制值,然后根据每个字符的位置累加总数。字符的位置决定了其在最终十进制值中的权重,该值从右到左以 16 的幂递增。

文件名:HexToDecimalExample3.java

输出

Decimal of a is: 10
Decimal of f is: 15
Decimal of 121 is: 289

解释

在 HexToDecimalExample3 类中提供的代码中包含一个名为 getDecimal() 的独特方法,该方法用于将十六进制字符串转换为其十进制等效值。最初,getDecimal() 方法定义了一个包含所有十六进制字符的数字字符串。为了保持一致性,它随后将输入的十六进制字符串从十六进制转换为大写。该过程将整数 val 的值设置为 0,以存储生成的十进制值。它使用 digits 上的 indexOf() 函数来遍历十六进制字符串中的每个字符并获取其十进制值。然后将此十进制值添加到当前字符的十进制值中,并用于在 val = 16 * val + d 的计算中将先前的值左移 16 的幂。十六进制字符串的十进制表示由最终结果 val 表示。

主方法转换并打印十六进制字符串“a”、“f”和“121”的十进制值,分别为 10、15 和 289,以展示如何使用 getDecimal() 方法。