bit_manipulation.find_previous_power_of_two

Functions

find_previous_power_of_two(→ int)

Find the largest power of two that is less than or equal to a given integer.

Module Contents

bit_manipulation.find_previous_power_of_two.find_previous_power_of_two(number: int) int

Find the largest power of two that is less than or equal to a given integer. https://stackoverflow.com/questions/1322510

>>> [find_previous_power_of_two(i) for i in range(18)]
[0, 1, 2, 2, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16]
>>> find_previous_power_of_two(-5)
Traceback (most recent call last):
    ...
ValueError: Input must be a non-negative integer
>>> find_previous_power_of_two(10.5)
Traceback (most recent call last):
    ...
ValueError: Input must be a non-negative integer