Java - 将十六进制转换为 IEEE-754 64 位 float - double

标签 java 64-bit floating-point hex ieee-754

我正在尝试将以下十六进制字符串:“41630D54FFF68872”转换为 9988776.0 (float-64)。

使用单精度 float-32 我会这样做:

int intBits = Long.valueOf("hexFloat32", 16).intValue();
float floatValue = Float.intBitsToFloat(intBits);

但这会抛出:java.lang.NumberFormatException: Infinite or NaN when using the 64-bits hex above.

如何将十六进制转换为使用 64 位 IEEE-754 编码的 double float ?

谢谢

最佳答案

您需要 double ,因此 Float 不是正确的类 - 这是用于单精度的。

相反,您需要 Double 类,特别是 Double.longBitsToDouble .

关于Java - 将十六进制转换为 IEEE-754 64 位 float - double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416269/

相关文章:

python - 在Python中访问基类原始类型

Java 用户在一行中指定输入文件

java - 复杂的sql查询返回空结果

asp.net - 如何在 x64 中使用 WebDev.WebServer.exe (VS Web Server)?

ios - 在为iOS应用添加64位支持的同时,首选使用int值的方法

c - 为什么需要显式 `-lm` 编译器选项?

java - Android 应用程序和 Java 程序使用通用的 HTTP 相关代码

java - libsdl 类消耗所有 JVM(阻止代码的执行)

excel - 按需编译已禁用

c - 拆分两位数