0

我正在尝试将十六进制数转换为十进制数,但它不适用于非常大的值(十进制超过 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);
            }

我试图让 deciInt along但它不是那么简单。问题似乎来自 parseInt 函数(parseLong 也不存在)

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

4

3 回答 3

1

正如这个答案所暗示的,使用Long.decode(str)

将 String 解码为 Long。接受十进制、十六进制和八进制数。

如果您需要大于Long.MAX_VALUE您可能应该使用 BigInteger

于 2013-03-12T10:59:18.750 回答
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);
        }
于 2013-03-12T11:01:24.723 回答
0

parseLong也存在。只要只是大小问题,都可以使用。

于 2013-03-12T11:00:51.667 回答