t func(x)
{
int countx = 0;
while (x)
{
countx ++;
x = x&(x -1);
}
return countx;
}
假设x = 9999, 请问返回值为多少?
==================================================
答案:8
解答:将x转化为2进制,利用按位与的方式,依次推算。
1 9998
2 9990
3 9980
4 9900
5 9800
6 9000
7 8000
8 0000
7 = 0111
8 = 1000
9 = 1001