思路分析:

把一个整数减去1,在和原来的整数做与运算,会把该整数最右边一个1变成0。那么一个二进制数中有多少个1,

就可以进行多少次操作。

代码:

int NumberOf1(int n)

{

         int count = 0;

         while (n )

        {

                        count++;

                         n = (n -1)&n;

        }

         return count;

}