原文: https://beginnersbook.com/2019/04/java-hexadecimal-to-decimal-conversion/

在本指南中,我们将在示例的帮助下,学习如何将十六进制转换为十进制数字。

十六进制到十进制转换示例

我们可以简单地使用Integer.parseInt()方法并将基数传递为 16 以将给定的十六进制数转换为等效的十进制数。

这里我们给出了一个十六进制数hexnum,我们通过使用Integer.parseInt()方法将其转换为十进制数,并将基数传递为 16。

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. //given hexadecimal number
  4. String hexnum = "6F";
  5. //converting hex to decimal by passing base 16
  6. int num = Integer.parseInt(hexnum,16);
  7. System.out.println("Decimal equivalent of given hex number: "+num);
  8. }
  9. }

输出:

Java 程序:十六进制到十进制的转换 - 图1

基于用户输入的十六进制到十进制转换

在上面的例子中,我们给出了一个数字。如果我们想要我们可以从用户那里获得输入,然后我们可以使用我们上面使用的相同逻辑将输入的十六进制数转换为十进制数。

  1. import java.util.Scanner;
  2. public class JavaExample{
  3. public static void main(String args[]){
  4. Scanner scanner = new Scanner(System.in);
  5. System.out.print("Enter any hexadecimal number: ");
  6. String hexnum = scanner.nextLine();
  7. scanner.close();
  8. //converting hex to decimal by passing base 16
  9. int num = Integer.parseInt(hexnum,16);
  10. System.out.println("Decimal equivalent of given hex number: "+num);
  11. }
  12. }

输出:

Java 程序:十六进制到十进制的转换 - 图2

使用用户定义的方法的十六进制到十进制转换

这里我们没有使用任何预定义的方法进行转换,我们正在编写自己的逻辑来将给定的十六进制数转换为十进制数。我们在用户定义的方法hexToDecimal()中编写了转换逻辑。此示例还使用StringcharAt()indexOf()方法。

  1. public class JavaExample{
  2. public static int hexToDecimal(String hexnum){
  3. String hstring = "0123456789ABCDEF";
  4. hexnum = hexnum.toUpperCase();
  5. int num = 0;
  6. for (int i = 0; i < hexnum.length(); i++)
  7. {
  8. char ch = hexnum.charAt(i);
  9. int n = hstring.indexOf(ch);
  10. num = 16*num + n;
  11. }
  12. return num;
  13. }
  14. public static void main(String args[]){
  15. System.out.println("Decimal equivalent of 7A is: "+hexToDecimal("7A"));
  16. }
  17. }

输出:

Java 程序:十六进制到十进制的转换 - 图3