用Python浮动到二进制和二进制浮动

时间:2018-11-29 11:55:43

标签: python-3.x floating-point binary

有人可以告诉我如何在python中将浮点数转换为32位二进制字符串以及如何从32位二进制串转换为浮点数吗?

python中的

'bin'函数仅适用于整数。

我需要一个单一的字符串,如内部表示形式。我不希望将单独的小数点后的数字作为小数位之前和之后的数字,而小数点后两者之间用小数位表示。

编辑:标记的问题并未解释如何将二进制字符串转换为浮点型。

1 个答案:

答案 0 :(得分:2)

this answer复制并根据Mark Dickinson的建议进行编辑:

import struct

def float_to_bin(num):
    return format(struct.unpack('!I', struct.pack('!f', num))[0], '032b')

def bin_to_float(binary):
    return struct.unpack('!f',struct.pack('!I', int(binary, 2)))[0]

print float_to_bin(3.14)产生“ 01000000010010001111011010111000011”。

print bin_to_float("11000000001011010111000010100100")产生“ -2.71000003815”。