我找了Python相当于Java的的Float.floatToBits
。
我发现这个的Python:获得和处理(如整数)浮标位模式 ,但没有人知道的那么复杂呢?
我找了Python相当于Java的的Float.floatToBits
。
我发现这个的Python:获得和处理(如整数)浮标位模式 ,但没有人知道的那么复杂呢?
亚历克斯马尔泰利给出这个问题的答案是真的很简单 - 你可以将其降低到:
>>> 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
这里是一个python浮子1刚要添加到讨论的64位,小端表示:
>>> import struct
>>> import binascii
>>> print('0x' + binascii.hexlify(struct.pack('<d', 123.456789)))
0x0b0bee073cdd5e40
参考文献:
struct.pack
字节顺序和字节大小格式说明 binascii.hexlify
[1]例如,我需要这个专为与NET的互操作性BitConverter
英特尔(即小端排序)