去除二进制最后的一个1.n&(n-1)
二进制中1的个数
http://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8
去除掉二进制最右边的一个1. n&(n-1)
/**
* 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
* @param n 整数
* @return 1的个数
*/
public int NumberOf1(int n) {
int res=0;
while(n!=0){
res++;
n&=(n-1);
}
return res;
}