[英]convert hexadecimal number string to double-precision number in java
how can we convert hexadecimal number string to double-precision number in java ? 如何在Java中将十六进制数字字符串转换为双精度数字?
in matlab it's simple : 在matlab中很简单:
>> hex2num('c0399999a0000000')
ans =
-25.6000
but could I do the same things in java also ? 但是我也可以在java中做同样的事情吗?
I tried parseInt() but this number is not integer. 我试过parseInt(),但是这个数字不是整数。
I think you want Double.longBitsToDouble
, like this: 我认为您想要Double.longBitsToDouble
,像这样:
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...) (Java中使用long
签名的事实使此操作比您真正想要的更加尴尬,但是嘿...)
首先加长,然后调用longBitsToDouble
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.