题目: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