leetcode:Number Of 1 Bits

来源:互联网 发布:java求1到100的乘积 编辑:程序博客网 时间:2024/06/03 21:32

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.

--------------------------------------------------------------------------------------------------------------------------------------------

看到这题吧,脑袋里浮现了两种思路:


思路一的代码:

int hammingWeight(uint32_t n) 
{int count = 0;int a = 1;unsigned int num = n;while (num != 0){++count;num = num&(num - 1);}return count;}
第二种思路的代码:

int hammingWeight_2(uint32_t n){int i = 0;unsigned int a = 1;int count = 0;while (a!=0){if ((n&a) != 0) //注意 != 的优先级大于 &++count;a = a << 1;}return count;}

欢迎大家提供更多的思路哦。

0 0
原创粉丝点击