📌  相关文章
📜  十六进制转十进制Java程序(1)

📅  最后修改于: 2023-12-03 15:22:48.252000             🧑  作者: Mango

十六进制转十进制Java程序介绍

本篇文章将介绍如何编写Java程序将十六进制数转换为十进制数。

十六进制和十进制的概念

十六进制是一种基数为16的计数系统,使用0-9以及A-F这16个字符表示数值,其中A表示10,B表示11,以此类推。例如,十六进制数2F表示的是(2 * 16 + 15) = 47。

而十进制是一种基数为10的计数系统,使用0-9这10个字符表示数值。

程序实现

编写程序时,我们可以采用如下的步骤实现将十六进制数转换为十进制数:

  1. 将十六进制字符串转换为字符数组。
  2. 从字符数组的末尾开始遍历,依次将每个字符转换为十进制数。
  3. 将每个十进制数乘以对应权值,即16的幂次方,求和即可。

下面是Java代码片段:

public class HexToDecimal {
    public static void main(String[] args) {
        String hex = "2F";
        int decimal = hexToDecimal(hex);
        System.out.println(hex + " in hex = " + decimal + " in decimal");
    }

    public static int hexToDecimal(String hex) {
        char[] hexArray = hex.toCharArray();
        int decimal = 0;
        int power = 0;
        for (int i = hexArray.length - 1; i >= 0; i--) {
            int digit = hexCharToDecimal(hexArray[i]);
            decimal += digit * Math.pow(16, power);
            power++;
        }
        return decimal;
    }

    public static int hexCharToDecimal(char c) {
        if (c >= '0' && c <= '9') {
            return c - '0';
        } else if (c >= 'A' && c <= 'F') {
            return c - 'A' + 10;
        } else if (c >= 'a' && c <= 'f') {
            return c - 'a' + 10;
        } else {
            throw new IllegalArgumentException("Invalid hex char: " + c);
        }
    }
}
结语

本篇文章介绍了如何编写Java程序将十六进制数转换为十进制数,同时也讲解了十六进制和十进制的概念。希望对您有所帮助。