首页 > 其他 > 详细

剑指Offer08 二进制中1的个数

时间:2016-08-29 22:08:39      阅读:131      评论:0      收藏:0      [点我收藏+]
 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 }

 

剑指Offer08 二进制中1的个数

原文:http://www.cnblogs.com/Juntaran/p/5819619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!