我正在尝试将十六进制数转换为十进制数,但它不适用于非常大的值(十进制中超过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也不存在)
有人知道我应该怎么做吗?
答案 0 :(得分:1)
作为this answer suggest,请使用Long.decode(str)
:
将字符串解码为Long。接受十进制,十六进制和八进制 号。
答案 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也存在。只要它只是一个尺寸问题,你就可以使用它。