1 /*************************************************************************
2 > File Name: 08_NumOf1InBinary.c
3 > Author: Juntaran
4 > Mail: JuntaranMail@gmail.com
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 }