剑指offer之二进制中1的个数 //把一个整数减去1,都是把最右边的1变成0,再和原整数做&运算,则该整数最右边的一个1变成0,则有多少个1进行多少次操作 public class Solution { public int NumberOf1(int n) { int count = 0; while (n != 0) { ++count; n = (n - 1) & n; } return count; } }