import math
# Function to find the position of the first set bit
def find_first_set_bit_position(num):
# Edge case: If the number is 0, there are no set bits
if num == 0:
return 0 # Return 0 to indicate no set bit
"""
num & -num isolates the lowest set bit.
math.log2(...) gives the zero-based index of that bit.
"""
return int(math.log2(num & -num))
num = 4224 # Binary: 0001 0000 1000 0000
# Find and display the position of the first set bit
position = find_first_set_bit_position(num)
if position == 0:
print("The number has no set bits (it's 0).")
else:
print("The position of the first set bit is:", position)
"""
run:
The position of the first set bit is: 7
"""