如何将 32 位二进制转换为浮点数
How to convert 32-bit binary to float
我想在 python 中执行从 32 位二进制到浮点数的 IEEE 754 转换。
我试过了
import struct
f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('i', f))[0]
但这不适用于带负号位的数字。
预期的输出应该是这样的:
bintofloat(11000001101011000111101011100001)
>>> -21.56
您可以按如下方式使用 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
不过这完全取决于整数的表示方式。
我想在 python 中执行从 32 位二进制到浮点数的 IEEE 754 转换。
我试过了
import struct
f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('i', f))[0]
但这不适用于带负号位的数字。
预期的输出应该是这样的:
bintofloat(11000001101011000111101011100001)
>>> -21.56
您可以按如下方式使用 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
不过这完全取决于整数的表示方式。