在Java(Android)中将十六进制数转换为十进制

时间:2011-12-01 08:08:06

标签: java android

如上标题所示。我想从EditText

中取出十六进制数
EditText number = (EditText) findViewById (R.id.etDisplay);
Editable stringEditable = number.getText().toString;
String nuovo = stringEditable.toString();

我想将nuovo转换为decimal number

5 个答案:

答案 0 :(得分:28)

int i = Integer.parseInt(nuovo, 16);

答案 1 :(得分:7)

答案 2 :(得分:4)

尝试Integer.parseInt(nuovo,16)

答案 3 :(得分:4)

在某些情况下,接受的答案会有效,但如果您的号码可能大于Integer.MAX_VALUE,则可能需要使用以下内容:

public static long hexToLong(String hex) {
    return Long.parseLong(hex, 16);
}

答案 4 :(得分:1)

这是一个小型演示。它使用java.util.Scanner并将其转换。

import java.util.Scanner;



public class hex {
    static long dec=0;


    static long squ(int i)
    {
        long pow=16;
        if(i==0)
        {
                return 1;
        }
        else if(i==1)
        {

            return pow;

        }
        else
        {
            for(int k=2;k<=i;k++)
            {
                pow=pow*16;
            }
            return pow;
        }
    }
    public static void main(String[] args) {

        Scanner so=new Scanner(System.in);
        System.out.println("enter the hexa decimal no");
        String hx=so.next();

        hx.toLowerCase();
        char c[]=hx.toCharArray();
        int j=c.length;
        int x=j;

        int i=0;

        j--;
        while(j>=0)
        {
            if(c[j]=='a'|c[j]=='b'|c[j]=='c'|c[j]=='d'|c[j]=='e'|c[j]=='f'|c[j]=='1'|c[j]=='2'|c[j]=='3'|c[j]=='4'|c[j]=='5'|c[j]=='6'|c[j]=='7'|c[j]=='8'|c[j]=='9')
            {
                j--;
            }
            else
            {

                i++;
                break;
            }

        }
        if(i>0)
        {
            System.out.println("its not  hex decimal no");

        }
        else
        {
            System.out.println("it s  hex decimal no");
            x--;
            int xy=0;
            while(x>=0)
            {
                long z=squ(xy);
                ++xy;
                char r=c[x];
                String s=""+r;


                switch(s)
                {
                case "a": dec=dec+(10*z);
                            break;
                case "b": dec=dec+(11*z);
                break;
                case "c": dec=dec+(12*z);
                break;
                case "d": dec=dec+(13*z);
                break;
                case "e": dec=dec+(14*z);
                break;
                case "f": dec=dec+(15*z);
                break;
                case "1": dec=dec+(1*z);
                break;
                case "2": dec=dec+(2*z);
                break;
                case "3": dec=dec+(3*z);
                break;
                case "4": dec=dec+(4*z);
                break;
                case "5": dec=dec+(5*z);
                break;
                case "6": dec=dec+(6*z);
                break;
                case "7": dec=dec+(7*z);
                break;
                case "8": dec=dec+(8*z);
                break;
                case "9": dec=dec+(9*z);
                break;
                case "0": dec=dec+(0*z);
                break;
                default:System.out.println("cant find****"+s);
                break;


                }

                x--;
            }
            System.out.println("final decimal equ is*****"+dec);
        }


    }

}