1
如何获得字符串的32位浮点表示法作为二进制IEEE 754?在Python中的二进制浮点表示法(位不是十六进制)
例
'00111111100000000000000000000000' - > 1.00
这个问题的反面: Binary representation of float in Python (bits not hex) ,我无法在别处找到答案。请注意,我对编码非常陌生,所以请温和。
如何获得字符串的32位浮点表示法作为二进制IEEE 754?在Python中的二进制浮点表示法(位不是十六进制)
例
'00111111100000000000000000000000' - > 1.00
这个问题的反面: Binary representation of float in Python (bits not hex) ,我无法在别处找到答案。请注意,我对编码非常陌生,所以请温和。
使用struct.pack
和struct.unpack
:
>>> import struct
>>> n = '00111111100000000000000000000000'
>>> struct.unpack('f', struct.pack('i', int(n, 2)))[0]
1.0
int(.., 2)
到二进制表示到int
转换(基数为2)struct.pack('i', ..)
至字节转换(i
:32位INT)struct.unpack('f', ...)[0]
转换字节回到浮动状态。其他struct
格式字符,请参阅Format charactes - struct
module documentation。