题目:计算一个数字对应的二进制数中1的个数
/**
* 计算一个数对应的二进制数中1的个数
* @param n
* @return
*/
public static int bit1counts(int num ){
int count =0;
while (num !=0){
//num = 000000000111
//rightOne = 000000000001
int rightOne = num & (~num+1);
count++;
//抹掉最右侧的1
//num = 000000000110
//num = 000000000111
//rightOne = 000000000001
num ^=rightOne;
}
System.out.println(count);
}