牛客网
输入一个整数,输出该数二进制表示中 1 的个数。
n & (n-1)可以除掉n的最后的一个1,变为0
n : 10110100 n-1 : 10110011 n&(n-1) : 10110000
public class Solution { public int NumberOf1(int n) { int cnt = 0; while (n != 0) { cnt++; n = n&(n-1); } return cnt; } }