如何在python中获得32位IEEE值的整数值

时间:2016-04-07 06:03:28

标签: python ieee

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

我想0 100000001 0000000000000000000000分别是signbit,expononent然后是分数值。

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

1 个答案:

答案 0 :(得分: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