[英]float to binary <-> binary to float conversion
我想将一个浮点数转换为二进制字符串并返回。
我试过这个:
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
这不符合你的想法:
binary_to_float = float(int(float_to_binary, 0))
它不会重新解释数据,而是将整数转换为浮点数,例如1234
到1234.0
。
您可以使用:
>>> from struct import *
>>>
>>> # float -> binary
>>> bin( unpack('I', pack('f', 3.14))[0] )
'0b1000000010010001111010111000011'
>>>
>>>
>>> # binary -> float
>>> unpack('f', pack('I', 0b1000000010010001111010111000011) )[0]
(3.140000104904175,)
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.