bit_manipulation.power_of_4¶
Task: Given a positive int number. Return True if this number is power of 4 or False otherwise.
Implementation notes: Use bit manipulation. For example if the number is the power of 2 it’s bits representation: n = 0..100..00 n - 1 = 0..011..11
n & (n - 1) - no intersections = 0 If the number is a power of 4 then it should be a power of 2 and the set bit should be at an odd position.
Functions¶
|
Return True if this number is power of 4 or False otherwise. |
Module Contents¶
- bit_manipulation.power_of_4.power_of_4(number: int) bool ¶
Return True if this number is power of 4 or False otherwise.
>>> power_of_4(0) Traceback (most recent call last): ... ValueError: number must be positive >>> power_of_4(1) True >>> power_of_4(2) False >>> power_of_4(4) True >>> power_of_4(6) False >>> power_of_4(8) False >>> power_of_4(17) False >>> power_of_4(64) True >>> power_of_4(-1) Traceback (most recent call last): ... ValueError: number must be positive >>> power_of_4(1.2) Traceback (most recent call last): ... TypeError: number must be an integer