题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
二进制中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; } }