剑指Offer08 二进制中1的个数

Posted Juntaran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer08 二进制中1的个数相关的知识,希望对你有一定的参考价值。

 1 /*************************************************************************
 2     > File Name: 08_NumOf1InBinary.c
 3     > Author: Juntaran
 4     > Mail: [email protected]
 5     > Created Time: 2016年08月29日 星期一 20时40分15秒
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9  
10 int NumberOf1_1(int n)
11 {
12     int count = 0;
13     int flag = 1;
14     while (flag < n)
15     {
16         if (n & flag)
17             count ++;
18         flag = flag << 1;
19     }
20     return count;
21 }
22 
23 int NumberOf1_2(int n)
24 {
25     int count = 0;
26     while (n)
27     {
28         ++ count;
29         n = (n - 1) & n;
30     }
31     return count;
32 }
33 
34 int main()
35 {
36     int ret1 = 0;
37     int ret2 = 0;
38     
39     int n = 5;
40     ret1 = NumberOf1_1(n);
41     ret2 = NumberOf1_2(n);
42     printf("ret1 is %d\n", ret1);
43     printf("ret2 is %d\n", ret2);
44 }

 

以上是关于剑指Offer08 二进制中1的个数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(剑指 Offer)- 15. 二进制中 1 的个数

剑指Offer08 二进制中1的个数

剑指 Offer 15. 二进制中1的个数

双百解法剑指 Offer 15. 二进制中1的个数

剑指offer--15二进制中1的个数

[LeetCode]剑指 Offer 15. 二进制中1的个数