Я не уверен, правильно ли я вас понимаю, но это было бы моим решением:
import struct
def float_to_bin(num):
return format(struct.unpack('!I', struct.pack('!f', num))[0], '032b')
x=16.4637159674589415472835945
string=str(x)
bitx=float_to_bin(x)
part_of_string=string[4:17]
part_of_bitx=bitx[4:17]
Я скопировал функцию float_to_bin из другого места (вероятно, где-то из Stackoverflow), чтобы сделать floatдвоичное число. Эта функция уже делает двоичное число строкой, поэтому вы можете просто использовать обычное индексирование. Если вы хотите прочитать конкретную позицию числа с плавающей запятой, вы можете просто сделать это число строкой и затем использовать индексирование.
Надеюсь, я правильно понял ваш вопрос. Бест, лепакк