我有一堆十六进制字符串,例如其中一个是:
d1bc4f7154ac9edb
这是“-3333702275990511909”的十六进制值。这与执行 Long.toHexString("d1bc4f7154ac9edb"); 时得到的十六进制相同;
现在,让我们假设我只能访问十六进制字符串值,仅此而已。这样做:
Long.parseLong(hexstring, 16);
不起作用,因为它会将其转换为对于 Long 而言太大的不同值。是否可以将这些无符号的十六进制值转换为有符号的长整数?
谢谢!
最佳答案
您可以使用 BigInteger
解析它并取回一个long
:
long value = new BigInteger("d1bc4f7154ac9edb", 16).longValue();
System.out.println(value); // this outputs -3333702275990511909
关于Java - 将无符号的十六进制字符串解析为带符号的长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723579/