# 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