How to find the position of the first set bit (1-bit) of a number in Python

1 Answer

0 votes
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

"""

 



answered Sep 4 by avibootz
...