二进制中1的个数

题目

  输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

分析

  把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0。

代码

1   public int NumberOf1(int n){
2         int count = 0;
3         while(n!=0){
4             n = n&(n-1);
5             count++;
6         }
7         return count;
8     }
原文地址:https://www.cnblogs.com/jiqianqian/p/6950030.html