标签:
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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
有个简单的规律, Wegner (1960)发现的。利用x和x-1之间的关系。
1 class Solution { 2 public: 3 int hammingWeight(uint32_t n) { 4 int result = 0; 5 while(n) 6 { 7 n=n&(n-1); 8 result++; 9 } 10 return result; 11 } 12 };
标签:
原文地址:http://www.cnblogs.com/Sean-le/p/4782488.html