计算一个整数的二进制表示中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 }