牛客网-《剑指offer》-二进制中1的个数

题目:http://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8

C++

负数需要特殊处理,因为负数右移会补1(符号位)

 1 class Solution {
 2 public:
 3      int  NumberOf1(int n) {
 4          unsigned int v = n;
 5          int sum = 0;
 6          while (v) {
 7              sum += v&1;
 8              v >>= 1;
 9          }
10          return sum;
11      }
12 };
原文地址:https://www.cnblogs.com/CheeseZH/p/5112969.html