0
我想将浮点数转换为二进制字符串并返回。浮动到二进制<->二进制浮动转换
我尝试这样做:
import struct
from ast import literal_eval
float_to_binary = bin(struct.unpack('!i',struct.pack('!f', 3.14))[0])
print (float_to_binary)
binary_to_float = float(int(float_to_binary, 0))
print (binary_to_float)
result = float(literal_eval(float_to_binary))
print (result) #wrong, prints 1078523331.0, should be 3.14
冷静一点,虽然当我使用的变量,像这样: original_float = 3.14 binary_string = INT(斌(解压缩( '我',包( 'F', float_value = unpack('f',pack('I',binary_string))[0] 不起作用。 ValueError:int()的无效字面量,基数为10:'0b1000000010010001111010111000011' – andandandand
@omgzor您需要通过'int(...,2)'告诉'int'该字符串中的整数是基数2的整数,所以它应该是'binary_string = int(bin(unpack('I',pack('f',original_float))[0]),2)'。如果你只是对base 10的值''binary_string = unpack('I',pack('f',original_float))[0]'感兴趣,你可以删除int(bin(...),2)'。 – 2014-02-06 19:08:22