Я хотел бы найти лучший способ добиться следующего:
n = 6
k = 1
Flip the 1st significant bit in 6
Variable Binary representation Decimal Representation
n 110 6
m(result) 010 2
Я хотел бы добиться того же, что и в этой вики-статье
Здесьэто то, что я сделал, но я нахожу это немного излишним, неэффективным:
def toggleKthSignificantBit(self, n, k):
tmp = list(bin(n)[2:].zfill(3))
tmp[k-1] = str(int(tmp[k-1]) ^ 1)
tmp2 = ''.join(tmp)
print(tmp2)
return int(tmp2, 2)