繁体   English   中英

float to binary < - > binary to float conversion

[英]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))

它不会重新解释数据,而是将整数转换为浮点数,例如12341234.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM