问题11:下面这个函数希望完成什么任务?
int func(int x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
解答:这个函数是求一个整数的二进制表示中含1的个数。假定x = 9999,该函数返回8。这是道微软的面试题,在《编程之美》一书中给出了若干种方法,用来求二进制数中1的个数。
问题12:以下三条输出语句分别输出什么?
问题11:下面这个函数希望完成什么任务?
int func(int x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
解答:这个函数是求一个整数的二进制表示中含1的个数。假定x = 9999,该函数返回8。这是道微软的面试题,在《编程之美》一书中给出了若干种方法,用来求二进制数中1的个数。
问题12:以下三条输出语句分别输出什么?