标签:
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.
Bit Manipulation
这道题考虑按位与运算和位的左移右移就可以了
#include<iostream>
#include<bitset>
typedef unsigned int uint32_t;
using namespace std;
int hammingWeight(uint32_t n)
{
unsigned int temp=1;
int result=0;
for(int i=0;i<32;i++)
{
int temp2=temp<<i;
if((n&temp2)!=0)
result+=1;
}
return result;
}
int main()
{
cout<<hammingWeight(11)<<endl;
}
leetcode_191题——Number of 1 Bits(外运算)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4480087.html