1 /****************************************
2 > File Name:test.c
3 > Author:xiaoxiaohui
4 > mail:1924224891@qq.com
5 > Created Time:2016年05月23日 星期一 21时04分35秒
6 ****************************************/
7
8 #include<stdio.h>
9
10 int SumOfBit(int num)
11 {
12 int count = 0;
13 int i = 0;
14
15 for(;i <= 32; i++)
16 {
17 if( (num & (1 << i)) == 1) //对应的bit位为1
18 {
19 count++;
20 }
21 }
22
23 return count;
24 }
1 /****************************************
2 > File Name:test1.c
3 > Author:xiaoxiaohui
4 > mail:1924224891@qq.com
5 > Created Time:2016年05月23日 星期一 21时24分40秒
6 ****************************************/
7
8
9
10
11 /*这种算法只适应于正数的情况, 当为num为负数时,在某些平台下会是死循环
12 这种算法如果是正数,则不用算32次循环了*/
13
14
15 #include<stdio.h>
16
17 int NumOfBit(int num)
18 {
19 int count = 0;
20
21 while(num != 0)
22 {
23 if( (num & 1) == 1)
24 {
25 count++;
26 }
27
28 num >> 1;
29 }
30
31 return count;
32 }
~
1 /****************************************
2 > File Name:test3.c
3 > Author:xiaoxiaohui
4 > mail:1924224891@qq.com
5 > Created Time:2016年05月23日 星期一 21时30分13秒
6 ****************************************/
7
8
9
10
11 /*这种算法最佳*/
12
13 #include<stdio.h>
14
15 int NumOfBit(int num)
16 {
17 int count = 0;
18
19 while(num != 0)
20 {
21 num = num & (num - 1);
22 count++;
23 }
24
25 return count;
26 }
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。