I have a bunch of hex strings, one of them, for example is:
d1bc4f7154ac9edb
which is the hex value of "-3333702275990511909". This is the same hex you get if you do Long.toHexString("d1bc4f7154ac9edb");
For now, let's just assume I only have access to the hex string values and that is it. Doing this:
Long.parseLong(hexstring, 16);
Doesn't work because it converts it to a different value that is too large for a Long. Is there away to convert these unsigned hex values into signed longs?
Thanks!
You can use BigInteger
to parse it and get back a long
:
long value = new BigInteger("d1bc4f7154ac9edb", 16).longValue();
System.out.println(value); // this outputs -3333702275990511909