LeetCode OJ:Number of 1 Bits(比特1的位数)
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.
计算一个数字的二进制表示中含有的bit1的个数,简单的右移而已,代码如下所示:
1 class Solution { 2 public: 3 int hammingWeight(uint32_t n) { 4 if(n == 0) return 0; 5 int ret = 0; 6 while(n != 0){ 7 if(n & 1 == 1){ 8 ret++; 9 } 10 n >>= 1; 11 } 12 return ret; 13 } 14 };