如何在python中获得32位IEEE值的整数值 例如01000000010000000000000000000000会给我整数3。 我该怎么做?
我想0 100000001 0000000000000000000000分别是signbit,expononent然后是分数值。
我只是想知道如何在python中编写这样的代码。 有什么步骤,或者如果有人可以帮助我学习代码那将是很好的。谢谢!
答案 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