将浮点数转换为其 IEEE(32 位)值
Converting a float to its IEEE (32 bits) value
我想在 python 中编写一个脚本,它采用浮点值,例如 -37.32,并输出其 IEEE 值 (11000010000101010100011110101110)。对于第一位,如果数字是负数而不是 1,否则它是 0。对于指数,它的问题是将数字除以 2,如果我是正确的,则得到余数。至于尾数,我不知道如何计算。返回一个字符串将是最合理的方式,因为它更适合构建 IEEE 的每个元素。
有人可以帮助我了解我将要采用的方法吗?或者展示一个脚本来解决这个问题并向我解释?
struct
模块可用于将 float
转换为字节序列。然后只需将每个字节转换为二进制字符串并将它们连接在一起即可。
>>> import struct
>>> ''.join('{:08b}'.format(b) for b in struct.pack('f', -37.32))
'10101110010001110001010111000010'
我想在 python 中编写一个脚本,它采用浮点值,例如 -37.32,并输出其 IEEE 值 (11000010000101010100011110101110)。对于第一位,如果数字是负数而不是 1,否则它是 0。对于指数,它的问题是将数字除以 2,如果我是正确的,则得到余数。至于尾数,我不知道如何计算。返回一个字符串将是最合理的方式,因为它更适合构建 IEEE 的每个元素。
有人可以帮助我了解我将要采用的方法吗?或者展示一个脚本来解决这个问题并向我解释?
struct
模块可用于将 float
转换为字节序列。然后只需将每个字节转换为二进制字符串并将它们连接在一起即可。
>>> import struct
>>> ''.join('{:08b}'.format(b) for b in struct.pack('f', -37.32))
'10101110010001110001010111000010'