Pet*_*ter 17 java hex long-integer
我有一堆十六进制字符串,其中一个,例如:
d1bc4f7154ac9edb
Run Code Online (Sandbox Code Playgroud)
这是十六进制值"-3333702275990511909".如果你做Long.toHexString("d1bc4f7154ac9edb"),这是你得到的相同的十六进制;
现在,让我们假设我只能访问十六进制字符串值,就是这样.这样做:
Long.parseLong(hexstring, 16);
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它将它转换为对Long来说太大的不同值.是否可以将这些无符号十六进制值转换为有符号长整数?
谢谢!
Whi*_*g34 22
您可以使用BigInteger
它来解析它并返回long
:
long value = new BigInteger("d1bc4f7154ac9edb", 16).longValue();
System.out.println(value); // this outputs -3333702275990511909
Run Code Online (Sandbox Code Playgroud)
您可以将其拆分为一半,一次读取32位.然后使用shift-left by 32和逻辑或将其恢复为单个long.
归档时间: |
|
查看次数: |
11123 次 |
最近记录: |