将十六进制数转换为长整数

时间:2013-03-12 10:57:32

标签: java decimal hex

我正在尝试将十六进制数转换为十进制数,但它不适用于非常大的值(十进制中超过2,147,483,647),因为int类型在那里受限制。

这是我的代码,适用于整数

String nombreHexa = h2d.getText().toString();
            if (isHex(nombreHexa) == true) {
                int deciInt = Integer.parseInt(nombreHexa, 16);
                String newDeci = String.valueOf(deciInt);
                resulth2d.setText(newDeci);
            }

我试图将结果设为long,但事实并非如此简单。问题似乎来自parseInt函数(parseLong也不存在)

有人知道我应该怎么做吗?

3 个答案:

答案 0 :(得分:1)

作为this answer suggest,请使用Long.decode(str)

  

将字符串解码为Long。接受十进制,十六进制和八进制   号。

如果您需要大于Long.MAX_VALUEyou should probably use BigInteger

答案 1 :(得分:1)

Long.parseLong(String num, int radix)出了什么问题?

String nombreHexa = h2d.getText().toString();
        if (isHex(nombreHexa) == true) {
            long deciLong = Long.parseLong(nombreHexa, 16);
            String newDeci = String.valueOf(deciLong);
            resulth2d.setText(newDeci);
        }

答案 2 :(得分:0)

parseLong也存在。只要它只是一个尺寸问题,你就可以使用它。