ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

计算一个整数的二进制表示中1的个数:

 1 #include "stdafx.h"
 2 
 3 int NumberOfOne(int a)
 4 {
 5     int nCount = 0;
 6 
 7     while (0 != a)
 8     {
 9         ++nCount;
10 
11         a &= a - 1;
12     }
13 
14     return (nCount);
15 }
16 
17 int NumberOfOne1(int a)
18 {
19     int nCount = 0;
20 
21     for (int i = 0; i < 32; ++i)
22     {
23         if (0 != ((1 << i) & a))
24         {
25             ++nCount;
26         }
27     }
28 
29     return (nCount);
30 }
31 
32 int main(void)
33 {
34     int a;
35 
36     scanf ("%d", &a);
37 
38     printf ("%d\n\n", NumberOfOne(a));
39 
40     printf ("%d\n", NumberOfOne1(a));
41 
42     return (0);
43 }

posted on 2013-04-09 14:34  ldjhust  阅读(164)  评论(0编辑  收藏  举报