方法:利用位运算。最后1个1在减1并与原数相与时会去掉一个1,反复操作直至为0。
如:
6——0110
0110 & 0101 = 0100
0100 & 0010 = 0000
public int NumberOf1(int n){
int count = 0;
while(n != 0){
count++;
n = n&(n-1);
}
return count;
}
方法:利用位运算。最后1个1在减1并与原数相与时会去掉一个1,反复操作直至为0。
如:
6——0110
0110 & 0101 = 0100
0100 & 0010 = 0000
public int NumberOf1(int n){
int count = 0;
while(n != 0){
count++;
n = n&(n-1);
}
return count;
}