思路:把一个整数减去一,再与原整数做与运算,会把该整数最右边的一个1变成0,一个整数的二进制表示中有多少个1就可以进行多少次运算。
位与符号是&真值表达式为: 1&1=1,1&0=0,0&1=0,0&0=0
public class Main9 {
public static int numOfOne(int num){
int count =0;
while(num!=0){
num = num&(num-1);
count++;
}
return count;
}
}