麻烦帮忙解释下这个C语言程序,谢谢了,很基础的j

#include<stdio.h>intfunc(intx){intcount=0;while(x){count++;x&=(x-1);}returncount;}voi... #include <stdio.h>
int func(int x)
{
int count=0;
while(x){
count++;
x&=(x-1);
}
return count;

}

void main(){
printf("%d\n",func(360));
}
展开
 我来答
717370999
2010-10-12 · TA获得超过542个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:456万
展开全部
首先你定义了一个返回值为int类型的函数func,这个函数有一个int类型的形参。
在函数里面,用传递进来的实参来作为判断程序结束的条件,就是x&=(x-1);这句,这个是一个按位与的操作,数在内存里面都有以二进制存储的,当x和x-1在内存中表示的对应位上没有全是1的情况出现,那么这个表达式就是0,然后结束,返回count,这个是计数用的,来看看执行了几次循环。
在main函数中用printf函数输出这个数值。
看明白了吧,就是一个位与大概比较难理解一下,你看看书就明白了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式