Check if an integer is a power of 2
suggest changeThe n & (n - 1)
trick is also useful to determine if an integer is a power of 2:
bool power_of_2 = n && !(n & (n - 1));
Note that without the first part of the check (n &&
), 0
is incorrectly considered a power of 2.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents