Java 十六进制字符串到十进制的转换
我需要在java中将十六进制字符串转换为十进制 我的十六进制值是“00000156abe980”。 我需要的输出是1471654128000 我用java做了以下工作Java 十六进制字符串到十进制的转换,java,Java,我需要在java中将十六进制字符串转换为十进制 我的十六进制值是“00000156abe980”。 我需要的输出是1471654128000 我用java做了以下工作 public static void main (String args []) { String hexValue = " 00000156A56BE980 "; Integer result = Integer.parseInt(hexValue, 16); System.out.println(result); }
public static void main (String args [])
{
String hexValue = " 00000156A56BE980 ";
Integer result = Integer.parseInt(hexValue, 16);
System.out.println(result);
}
但我得到了以下错误
输入字符串“00000156A56BE980”的数字格式异常
我试着让long也犯同样的错误。。对于其他十六进制值,它来了,但当我们给出更大值的十六进制字符串时,它显示了错误
我们如何把这个数字转换成十进制?
有人能帮我解决这个问题吗?这样试试看
import java.math.*;
class Main {
public static void main (String args [])
{
String hexValue = "00000156A56BE980";
BigInteger result = new BigInteger(hexValue, 16);
System.out.println(result);
}
}
也见此
问题可能是因为您的值不符合
整数的值范围(-231到232-1)
-请参见整数(>2^32)的数字太大
(字符串表示的值不是int类型的值。)
看一看这个数字对于32位
int
尝试改用long
public static void main(String[] args) {
String hexValue = "00000156A56BE980";
long result = Long.parseLong(hexValue, 16);
System.out.println(result);
}
注意:数字中不能有空格。您可以调用
.trim()
来删除它们。要使代码正常工作,需要做两件事:
是的,我也试过。。抛出相同的错误..您会得到一个
NumberFormatException
,因为您试图解析的字符串末尾有一个空格。把空间清理掉。此外,如果该值太大,无法放入int
中,则会出现此异常。repl.it
仍不工作New BigInteger(hexValue)正在为我工作。。谢谢Dax@金牛座:很高兴听到。@AsteriskNinja我现在在几个系统上试过了-链接没有死;我想你有一个问题…我想我有我得到错误这个网站不能提供一个安全的连接
lol
public static void main(String[] args) {
String hexValue = " 00000156A56BE980 ";
long result = Long.parseLong(hexValue.trim(), 16);
System.out.println(result);
}