我想在32位二进制文件中执行IEEE 754转换,以便在python中进行浮动。
我试过这个
import struct
f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('i', f))[0]
但这对带有负号位的数字不起作用。
预期输出应该是这样的:
bintofloat(11000001101011000111101011100001)
>>> -21.56
答案 0 :(得分:4)
您可以使用struct
,如下所示:
import struct
f = int('01000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('I', f))[0]
f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('I', f))[0]
给你一个输出:
21.5599994659
-21.5599994659
这完全取决于整数的表示方式。