1

如何在 python 中获得 32 位 IEEE 值的整数值,例如 01000000010000000000000000000000 会给我整数 3。我该怎么做?

我会 0 100000001 0000000000000000000000 分别是符号位,指数,然后是分数。

我只是想知道如何在 python 中编写这样的代码。步骤是什么,或者如果有人可以帮助我学习代码,那就太好了。谢谢!

4

1 回答 1

3

这是一种非常迂回的方法......首先将字符串解释为整数(以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
于 2016-04-07T06:23:10.773 回答