leetcode 191

191. Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

求出输入整数的32位中有多少位值为1.

代码如下:

 

 1 class Solution {
 2 public:
 3     int hammingWeight(uint32_t n) {
 4         unsigned pos = 1 << 31;
 5         int count = 0;
 6         while(pos)
 7         {
 8             if(pos & n)
 9             {
10                 count++;
11             }
12             pos >>= 1;
13         }
14         return count;
15     }
16 };

 

posted @ 2016-11-09 10:13  花椰菜菜菜菜  阅读(170)  评论(0编辑  收藏  举报