devxlogo

Fast Check for 2^N (2 power N) Numbers

Fast Check for 2^N (2 power N) Numbers

To test if an integer is a power of 2 (1,2,4,8,16…256…), use the following code:

if (!(x & (x-1)) then ...

Because 2^N-1 numbers have no common bits with 2^N in binary, they require only 1 logical AND and 1 SUBTRACT. Note that this only works with positive numbers:

2^N   : 100000000000.....2^N-1 : 011111111111.....

devx-admin

Share the Post: