有人可以告诉我如何根据java中的IEEE-754格式将Hex字符串转换为相应的单精度或双精度浮点数吗?
例如: “4682E989” 和 “A4703D4A0B0B7441”
BR suppi
答案 0 :(得分:4)
返回与给定位表示相对应的double值。根据IEEE 754浮点“双格式”位布局,该参数被认为是浮点值的表示。
您可以使用 Long.parseLong
long
从十六进制表示中获取new BigInteger(s, 16).longValue()
(正如Peter Lawrey指出的那样)。 Long.parseLong
不会这样做,因为它在大于2 ^ 63-1的数字上失败。
答案 1 :(得分:0)
这是正确答案的例子。
十六进制值 = 440B1831
预期二进制 = 1000100000010110001100000110001
预期浮点数= 556.378
Long decimal =new BigInteger("440B1831", 16).longValue();
String binary1 = java.lang.Long.toBinaryString(decimal);
System.out.println(binary1);
int intBits = Integer.parseInt(binary1, 2);
float myFloat = Float.intBitsToFloat(intBits);
System.out.println( myFloat);