The Algorithms logo
The Algorithms
AboutDonate

Count Number of One Bits

A
def get_set_bits_count(number: int) -> int:
    """
    Count the number of set bits in a 32 bit integer
    >>> get_set_bits_count(25)
    3
    >>> get_set_bits_count(37)
    3
    >>> get_set_bits_count(21)
    3
    >>> get_set_bits_count(58)
    4
    >>> get_set_bits_count(0)
    0
    >>> get_set_bits_count(256)
    1
    >>> get_set_bits_count(-1)
    Traceback (most recent call last):
        ...
    ValueError: the value of input must be positive
    """
    if number < 0:
        raise ValueError("the value of input must be positive")
    result = 0
    while number:
        if number % 2 == 1:
            result += 1
        number = number >> 1
    return result


if __name__ == "__main__":
    import doctest

    doctest.testmod()