如何在 python 中获得 32 位 IEEE 值的整数值,例如 01000000010000000000000000000000 会给我整数 3。我该怎么做?
我会 0 100000001 0000000000000000000000 分别是符号位,指数,然后是分数。
我只是想知道如何在 python 中编写这样的代码。步骤是什么,或者如果有人可以帮助我学习代码,那就太好了。谢谢!
这是一种非常迂回的方法......首先将字符串解释为整数(以2为底):
>>> s = '01000000010000000000000000000000'
>>> i = int(s, 2)
>>> i
1077936128
现在您可以使用以下方法获得该整数的整数位表示struct.pack
:
>>> b = struct.pack('i', i)
>>> b
'\x00\x00@@'
最后,您可以将struct.unpack
这些字节视为浮点数:
>>> f, = struct.unpack('f', b)
>>> f
3.0