n&(n-1)的用途最近做LeetCode上面的题目,发现很多题目都用到了n&(n-1)。感觉真是神通广大,下面就目前所看到的一些用途总结一下: 1,求一个int类型数是否为2的幂n&(n-1)==0则表示该数为2的幂 2,一个数的二进制中有多少位为1 while(n>0){ count++; n = n&(n-1); } 3,一个数是否为4的幂 一个数是4的幂,那么必然是2的幂,反之,则不然 那么首先确定条件n&(n-1)==0,确定出该数是否为2的幂,这就找到了一项必要条件 刚才说了一个数是2的幂却不一定是4的幂,比如2,8,32等这些都是2的...