二进制中1的个数(Java)
//第一种 n&(n-1)可以使n从右数第一个1变成0 那么能进行几次n&(n-1) 就有几个1
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n!=0){
count++;
n = n&(n-1);
}
return count;
}
/*
//第二种 无符号右移
public int NumberOf1(int n) {
int count = 0;
while(n != 0){
count += (n & 1); //每次判断最低位是否为1
n >>>= 1;
}
return count;
}
*/
}

浙公网安备 33010602011771号