欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

十六进制和十进制之间的转化

程序员文章站 2022-03-13 17:45:30
...

十进制转化成十六进制
原理:除16取余,直到原数为0,所得余数逆序即为十六进制数(大于十的转换成相应的字母)

public static String decimalToHex(int decimal)
    {
        String hex="";
        while(decimal!=0)
        {
            char ch;
            int yu=decimal%16;
            if(yu<=9)
                ch=(char)(yu+'0');
            else
                ch=(char)(yu-10+'A');
            hex=ch+hex;//望前加
            decimal/=16;
        }
        return hex;
    }

十六进制转化成十进制
原理:霍纳算法
解释:
当十六进制数为 a1a2a3……an
十进制数为(( (a1*16+a2)*16+a3 )*16+……+an-1)*16+an

例如十六进制数 3FA
转化十进制时易想到用:3* 162+15* 161+10* 160
易发现规律:上式等于:(3*16+15)*16+10

    public static int hexToDecimal(String hex)
    {
        int decimal=0;
        hex.toUpperCase();//先全换成大写字母
        for(int i=0; i<hex.length(); i++)
        {
            if(Character.isLetter(hex.charAt(i)))//当是字母时
                decimal=decimal*16+hex.charAt(i)-'A'+10;
            else
                decimal=decimal*16+hex.charAt(i)-'0';
        }
        return decimal;
    }
相关标签: 笔记

上一篇: 完全数

下一篇: 虚拟环境