Вот уродливый ...
>>> import struct
>>> bin(struct.unpack('!i',struct.pack('!f',1.0))[0])
'0b111111100000000000000000000000'
В принципе, я просто использовал структурный модуль для преобразования float в int ...
Вот немного лучше, используя ctypes
:
>>> import ctypes
>>> bin(ctypes.c_uint.from_buffer(ctypes.c_float(1.0)).value)
'0b111111100000000000000000000000'
В принципе, я создаю float
и использую ту же ячейку памяти, но я помещаю ее как c_uint
. Значение c_uint
представляет собой целое число python, на которое вы можете использовать встроенную функцию bin
.