How to set specific bits and find the set bits indexes in Python

1 Answer

0 votes
BIT_SIZE = 16

def print_binary(bits: int) -> None:
    print(f"{bits:0{BIT_SIZE}b}")

def find_first_set_bit(bits: int) -> int:
    for i in range(BIT_SIZE):
        if bits & (1 << i):
            return i
    return -1  # No bits set

def print_set_bit_indexes(bits: int) -> None:
    for i in range(BIT_SIZE):
        if bits & (1 << i):
            print(i, end=' ')
    print()


bits = 0
bits |= (1 << 3)
bits |= (1 << 5)
bits |= (1 << 11)
bits |= (1 << 14)

print_binary(bits)
print("First set bit at index:", find_first_set_bit(bits))

print("All the set bits indexes:")
print_set_bit_indexes(bits)



'''
run:

0100100000101000
First set bit at index: 3
All the set bits indexes:
3 5 11 14 

'''

 



answered Nov 3 by avibootz
...