191. Number of 1 Bits (Easy)

来源:互联网 发布:淘宝钻石卖家可信吗 编辑:程序博客网 时间:2024/05/02 08:31

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.

题目的意思是,求一个整数的二进制数中有多少个1。

Solutions:

C:
方法一:常规方法,将这个数转化成二进制,在转化过程中计算1的个数

int hammingWeight(uint32_t n) {    int count = 0;    while(n != 0) {        if(n % 2 == 1) {            count++;        }        n = n / 2;    }    return count;}

方法二:使用&运算

int hammingWeight(uint32_t n) {    int count = 0;    while(n != 0) {        n = n & (n - 1);        count++;    }    return count;}
0 0
原创粉丝点击