Вы можете получить желаемую строку (очевидно, подразумевающую 32-разрядное представление с прямым порядком байтов; Python внутренне использует собственный порядковый номер и 64-разрядные числа с плавающей точкой) с помощью модуля struct
:
>>> import struct
>>> x = 173.125
>>> s = struct.pack('>f', x)
>>> ''.join('%2.2x' % ord(c) for c in s)
'432d2000'
это еще не позволяет вам выполнять побитовые операции, но затем вы можете снова использовать struct для отображения строки в int:
>>> i = struct.unpack('>l', s)[0]
>>> print hex(i)
0x432d2000
и теперь у вас есть int
, который вы можете использовать в любых побитовых операциях (выполните те же два шага в обратном порядке, если после указанных операций вам нужно снова получить float
).