Java中如何将十六进制字符串转换为浮点型?
Java中如何将十六进制字符串转换为单精度浮点数?
比如如何实现:
float f = HexStringToFloat("BF800000"); // f 现在应该包含 -1.0
我问这个是因为我已经尝试过:
float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());
但我得到以下异常:
java.lang.NumberFormatException: For input string: "bf800000"
How to convert hexadecimal string to single precision floating point in Java?
For example, how to implement:
float f = HexStringToFloat("BF800000"); // f should now contain -1.0
I ask this because I have tried:
float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());
But I get the following exception:
java.lang.NumberFormatException: For input string: "bf800000"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要将十六进制值转换为 int(留作练习),然后使用 Float.intBitsToFloat(int)
You need to convert the hex value to an int (left as an exercise) and then use
Float.intBitsToFloat(int)