题目:输入一个整数n,求n的2进制表示中1的个数
分析可得:n&(n-1)的操作是将n的2进制表示中最右边的1变成0;
所以能得到对应的代码:
int numOf1(int n) { int count=0; while(n) { count++; n=n&(n-1); } return count; }
同理判断n是不是2的整数次幂
return !(n&(n-1));