计算机组成原理中的与或非,算术移位,逻辑移位很重要啊
看不懂了,把数字化成二进制模拟一下。
n & (~n + 1) 表示的是 n 的二进制最右边 1及其以后的值
public int NumberOf1(int n) {
int count = 0;
while(n != 0){
int a = n & (~n + 1);
n = n - a;
count++;
}
return count;
}
}