convert hexadecimal number string to double-precision number in java
10,055
I think you want Double.longBitsToDouble
, like this:
public class Test {
public static void main(String[] args) {
String hex = "c0399999a0000000";
long longHex = parseUnsignedHex(hex);
double d = Double.longBitsToDouble(longHex);
System.out.println(d);
}
public static long parseUnsignedHex(String text) {
if (text.length() == 16) {
return (parseUnsignedHex(text.substring(0, 1)) << 60)
| parseUnsignedHex(text.substring(1));
}
return Long.parseLong(text, 16);
}
}
(The fact that long
is signed in Java makes this more awkward than you'd really want, but hey...)
Author by
melisa zand
Updated on June 04, 2022Comments
-
melisa zand almost 2 years
how can we convert hexadecimal number string to double-precision number in java ?
in matlab it's simple :
>> hex2num('c0399999a0000000') ans = -25.6000
but could I do the same things in java also ?
I tried parseInt() but this number is not integer.