在Python中获取浮点数的"位"?

lea*_*ner 11 python floating-point bitwise-operators

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

我发现这个Python:获取和操作(作为整数)浮点数的位模式,但有没有人知道一个不那么复杂的方式?

bgp*_*ter 21

Alex Martelli在这个问题中给出的答案非常简单 - 您可以将其减少为:

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

将它作为整数后,您可以执行所需的任何其他操作.

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

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

>>> bitsToFloat(0x432d5000)
173.3125
Run Code Online (Sandbox Code Playgroud)