二进制中n一旦是2的幂次方,必为10,100,1000,10000,100000,…形式; 并且n-1为01,011,0111,0111,01111形式。 所以只要让n,n-1两个数按位与&等于零则为2的幂次方class Solution { public boolean isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0; } }