【问题描述】简单的说就是求2的幂,这个用到的解题思路是利用了二进制的2的幂的特点。关于2的幂,都是1,10,100,1000...观察可以知道其首位是1,其它都为0.我们可以利用并运算,对二进制进行运算。其核心算法是n&(n-1)==0
bool isPowerOfTwo(int n) { if(n<=0) return false; return ((n&(n-1))==0); }
============================ //求4的幂 bool isPowerOfFour(int num) { if(num<=0) return false; return ((num&(num-1))==0 && num&0x55555555); }