麻烦帮忙解释下这个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));
} 展开
int func(int x)
{
int count=0;
while(x){
count++;
x&=(x-1);
}
return count;
}
void main(){
printf("%d\n",func(360));
} 展开
1个回答
展开全部
首先你定义了一个返回值为int类型的函数func,这个函数有一个int类型的形参。
在函数里面,用传递进来的实参来作为判断程序结束的条件,就是x&=(x-1);这句,这个是一个按位与的操作,数在内存里面都有以二进制存储的,当x和x-1在内存中表示的对应位上没有全是1的情况出现,那么这个表达式就是0,然后结束,返回count,这个是计数用的,来看看执行了几次循环。
在main函数中用printf函数输出这个数值。
看明白了吧,就是一个位与大概比较难理解一下,你看看书就明白了。
在函数里面,用传递进来的实参来作为判断程序结束的条件,就是x&=(x-1);这句,这个是一个按位与的操作,数在内存里面都有以二进制存储的,当x和x-1在内存中表示的对应位上没有全是1的情况出现,那么这个表达式就是0,然后结束,返回count,这个是计数用的,来看看执行了几次循环。
在main函数中用printf函数输出这个数值。
看明白了吧,就是一个位与大概比较难理解一下,你看看书就明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询