《剑指Offer》15. 二进制中 1 的个数
题目链接
题目描述
输入一个整数,输出该数二进制表示中 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;
}
}

查看26道真题和解析