Я ищу самое быстрое решение следующей проблемы: Моя функция принимает десятичное число dec
, а затем преобразует его в двоичное число bin
длины l
.После этого я изменяю значение по i
-ому индексу двоичного числа и преобразовываю результат обратно в десятичное число.В настоящее время я реализовал это следующим образом:
def new_dec_function(dec, i, l):
bin = list(map(int, numpy.binary_repr(dec, width=l)))
bin[i] = 1 - bin[i]
new_dec = 0
for bit in bin:
new_dec = (new_dec << 1) | bit
return new_dec
Знаете ли вы, можно ли это улучшить?