Java-将十六进制转换为IEEE-754 64位浮点数-双精度

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

使用单精度float-32,我可以这样做:

int intBits = Long.valueOf("hexFloat32", 16).intValue();

float floatValue = Float.intBitsToFloat(intBits);

但这会引发:java.lang.NumberFormatException:使用上面的64位十六进制时,Infinite或NaN。

如何将十六进制转换为使用64位IEEE-754编码的浮点数" title="双精度浮点数">双精度浮点数?

谢谢

回答:

您需要双精度,所以Float不是正确的类-仅用于单精度。

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

以上是 Java-将十六进制转换为IEEE-754 64位浮点数-双精度 的全部内容, 来源链接: utcz.com/qa/429750.html

回到顶部