当前位置:   article > 正文

JAVA实现16进制转10进制_java 16进制转10进制

java 16进制转10进制

java中十六进制转十进制,可以使用Integer类的parseInt()方法直接转换,也可以自己写一个转换函数。

一、 Integer.parseInt()
十六进制转十进制,简单的方法就是使用Integer.parseInt()方法进制转换,一步到位。
1.如果输入的是不带0x表示的十六进制数,直接转换即可。

		Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine())
        {
            String str = sc.nextLine();
            int x=Integer.parseInt(str,16);
            System.out.println(x);

        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

测试结果:

输入:1A
输出:26
  • 1
  • 2

2.如果输入的是带有0x标识的十六进制数,需要截去前面两位标识。

		Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine())
        {
            String str = sc.nextLine();
            int x=Integer.parseInt(str.substring(2),16);
            System.out.println(x);

        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

测试结果:

输入:0x1A
输出:26
  • 1
  • 2

二、hexToDecimal

稍复杂的方法是自己写一个转换函数。使用一个HashMap把“0-9,A-F”与“0-15”的key-value一一存储起来,然后把读取的十六进制数按位存储,然后再使用数据计算16转10的方式计算。

public static int convertNum(String str)
    {
        String[] c={"A","B","C","D","E","F"};
        HashMap<String,Integer> hashmap= new HashMap<>();
        for(int i=0; i<=9;i++)
        {
            hashmap.put(i+"",i);
        }
        for(int j=10;j<=15;j++)
        {
            hashmap.put(c[j-10],j);
        }
        
        String[] st=new String[str.length()];
        for(int i=0;i<=str.length()-1;i++)
        {
            st[i]=str.substring(i,i+1);
        }
        
        int num=0;
        for(int i=2;i<=st.length-1;i++)
        //这里需要注意,如果输入是类似"1A"没有标识的16进制数,i的值从0开始
        //如果是"0x1A"这样有标识符的16进制,则在计算时,需要截掉0x这两位标识,i从2开始
        {
            num += hashmap.get(st[i]) * Math.pow(16,st.length-1-i);
        }
        return num;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

在计算时,如果输入的16进制数包含小写,使用toUpperCase()转换成统一的大写字母计算即可.

最后,十进制转二进制,八进制,十六进制,可以直接使用Integer类提供的方法直接转换,分别是toBinaryString(),toOctalString(),toHexString()方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/226769
推荐阅读
相关标签
  

闽ICP备14008679号