繁体   English   中英

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

[英]Convert Hexadecimal number to decimal in Java (Android)

如上面的标题。 我想从EditText获取十六进制数字

EditText number = (EditText) findViewById (R.id.etDisplay);
Editable stringEditable = number.getText().toString;
String nuovo = stringEditable.toString();

我想将nuovo转换为decimal number

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

接受的答案在某些情况下会起作用,但是如果您的电话号码可能大于Integer.MAX_VALUE ,则可能需要使用以下代码:

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

尝试Integer.parseInt(nuovo,16)

这是给您的一个小演示。 它使用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);
        }


    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM