题目:以下代码结果是多少?#includeusingnamespacestd;int?func(int?x){????int?count??0;????whil 题目:以下代码结果是多少? # include using namespace std; int func(int x) {     int count = 0;     while(x)  
          题目:以下代码结果是多少?
# include
using namespace std;
int func(int x)
{
int count = 0;
while(x)
{
count ++;
x=x
}
return count;
}
int main(int argc, char **args)
{
    cout << func(9999) <       return 0; }   A. 8    B. 9    C. 10    D. 11     看到这道题,结合后面的选项,我想,题目考察的肯定不是简单的计算问题,选项上面只有8,9,10和11 这几种情况,于是,我就想,先把9999化成二进制的形式:1001 1100 0011 11,然后,将这个数值带 到上面的func()函数中,一步一步算,从后面的答案知道,题目最坏的情况是循环11次,也不多。所以, 经过“漫长的计算”,得出count的结果为8,这不正好是9999化成二进制中1的个数吗? 为什么经过x=x 0  0    当x为0时,x     else         return 0; }   int main() {     int x = 8;     printf("%d\n", func(x)); } 9999二进制 及 x=x&(x-1)问题
