如何将32位二进制转换为float

时间:2015-11-02 17:53:34

标签: python binary floating-point ieee-754

我想在32位二进制文​​件中执行IEEE 754转换,以便在python中进行浮动。

我试过这个

import struct

f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('i', f))[0]

但这对带有负号位的数字不起作用。

预期输出应该是这样的:

bintofloat(11000001101011000111101011100001)
>>> -21.56

1 个答案:

答案 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

这完全取决于整数的表示方式。