[英]Convert hexadecimal string to double in Java
我想将此十六进制字符串48985DDFAF27A0转换为双精度。 结果应该是49.1903648 。
我试过
Double.longBitsToDouble
parseInt(x, 16)
解析十六进制字符串,然后使用intBitsToFloat
上述方法似乎都不起作用。
需要建议请
您必须将十六进制数字符串解析为 long。 这样做之后,您可以使用Double.longBitsToDouble
将其转换为Double.longBitsToDouble
。 这是您的十六进制数的示例:
public class Converter {
public static void main(String[] args) {
String hex = "48985DDFAF27A0";
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.