在Python中获取浮点数的“位”? [复制]

2024-04-15

我正在寻找 Java 的 Python 等价物Float.floatToBits.

我找到了这个Python:获取和操作(作为整数)浮点数的位模式 https://stackoverflow.com/questions/1922771/python-obtain-manipulate-as-integers-bit-patterns-of-floats但有人知道一种不太复杂的方法吗?


Alex Martelli 在这个问题中给出的答案非常简单——你可以将其简化为:

>>> import struct
>>> 
>>> 
>>> def floatToBits(f):
...     s = struct.pack('>f', f)
...     return struct.unpack('>l', s)[0]
...     
... 
>>> floatToBits(173.3125)
1127043072
>>> hex(_)
'0x432d5000'

一旦将其作为整数,您就可以执行所需的任何其他操作。

您可以将操作顺序反转为往返:

>>> def bitsToFloat(b):
...     s = struct.pack('>l', b)
...     return struct.unpack('>f', s)[0]

>>> bitsToFloat(0x432d5000)
173.3125
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中获取浮点数的“位”? [复制] 的相关文章

随机推荐