将浮点数转换为其IEEE(32位)值

问题描述 投票:0回答:1

我想用python编写一个脚本,该脚本采用一个浮点值,例如-37.32并输出其IEEE值(11000010000101010100011110101110)。如果数字是负数,则为第一位,否则为0;否则为0。对于指数,问题是将数字除以2,如果我是对的,则得到余数。至于尾数,我不知道如何计算。返回字符串将是最合理的方法,因为它对于构造IEEE的每个元素都更好。

有人可以帮助我采用我将采用的方法吗?或显示一个脚本来解决此问题并向我解释?

python floating-point ieee-754
1个回答
0
投票

struct模块可用于将float转换为字节序列。然后,只需将每个字节转换为二进制字符串并将它们连接在一起即可。

>>> import struct
>>> ''.join('{:08b}'.format(b) for b in struct.pack('f', -37.32))
'10101110010001110001010111000010'
© www.soinside.com 2019 - 2024. All rights reserved.