我需要在java中将十六进制的字符串转换为十进制..
我的十六进制值是“00000156A56BE980”。
我的所需输出为 1471654128000
我在java中完成了以下操作,
public static void main (String args [])
{
String hexValue = " 00000156A56BE980 ";
Integer result = Integer.parseInt(hexValue, 16);
System.out.println(result);
}
但是我收到以下错误,
数字格式输入字符串“00000156A56BE980”
的例外情况
我试过给long也会出现同样的错误..对于其他十六进制值它即将到来但是当我们给出更大值的十六进制字符串时它会显示错误。
我们如何将此数字转换为十进制? 任何人都可以为我解决这个问题吗?
答案 0 :(得分:4)
试试吧
import java.math.*;
class Main {
public static void main (String args [])
{
String hexValue = "00000156A56BE980";
BigInteger result = new BigInteger(hexValue, 16);
System.out.println(result);
}
}
另见repl.it
问题可能是因为您的值不适合Integer
的值范围(-2 31 至2 32 -1) - 请参阅docs
答案 1 :(得分:1)
对于32位int
请尝试使用long
。
public static void main(String[] args) {
String hexValue = "00000156A56BE980";
long result = Long.parseLong(hexValue, 16);
System.out.println(result);
}
注意:您不能在数字中包含空格。您可以致电.trim()
将其删除。
答案 2 :(得分:1)
2件事:
public static void main(String[] args) {
String hexValue = " 00000156A56BE980 ";
long result = Long.parseLong(hexValue.trim(), 16);
System.out.println(result);
}
答案 3 :(得分:0)