【剑指offer】二进制中1的个数

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

思路:将原数字与1按位进行与操作。

 1 public class Solution {
 2     public int NumberOf1(int n) {
 3         int count = 0;
 4         int flag = 1;
 5         while(flag != 0){
 6             if((n & flag) != 0){
 7                 count++;
 8             }
 9 
10    //将flag左移一位,下次与n的更高位与操作
11             flag = flag << 1;
12         }
13         return count;
14     }
15 }
原文地址:https://www.cnblogs.com/singular/p/10025059.html