求一个整数的二进制表示中1的个数

求一个整数的二进制表示中1的个数有一个巧妙的方法,如下:

int CountOne(int n)
{
        int count;
    while(n)
    {
        n=n&(n-1);
        count++;    
    }
    return count;
}