How to print the bits that need to be flipped to convert a number to another number in Python

1 Answer

0 votes
def printNeedToBeFlippedBits( num1,  num2) :
    bitNum = 0
    lsb1 = 0
    lsb2 = 0
     
    while ((num1 > 0) or (num2 > 0)) :
        lsb1 = num1 & 1
        lsb2 = num2 & 1
         
        if (lsb1 != lsb2) :
            print(str(bitNum) + " ", end='')
         
        num1 = num1 >> 1
        num2 = num2 >> 1
        bitNum += 1


num1 = 2  # 00000010
num2 = 17 # 00010001
 
printNeedToBeFlippedBits(num1, num2)

print()
 
num1 = 3   # 00000011
num2 = 221 # 11011101
 
printNeedToBeFlippedBits(num1, num2)

print()


 
 
'''
run:
 
0 1 4 
1 2 3 4 6 7 
 
'''

 



answered Dec 25, 2023 by avibootz
...