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.....