本文目录一览:
C语言中 printf("%d\n",12&012);这条语句什么意思啊?输出结果是什么?
输出结果:8
代码含义:这条语句是以十进制形式打印12012的结果;
解析过程:是位运算与,即按二进制位与,同1则1,否则为0。012为8进制数,化为二进制数为:1010;十进制数12,化为二进制数为1100;两个数只有左边第一位都为1,因此与运算结果为1000,化为十进制数为8。
用C语言写出 1000到1100素数和。 谢谢
测试过了,完全正确,你看看吧
#includestdio.h
int fun(int m)
{
int i;
if(m2) return 0;
for(i=2;i=m/2;i++)
if(m%i==0) return 0;
return 1;
}
void main( )
{
int n=0,i;
for(i=1000;i=1100;i++)
if(fun(i))
n+=i;
printf("sum=%d\n",n);
getch();
}
C语言高手请解释下这段代码的具体意思。。。。
for
(i=1;
i!=0;
i
=
1):
根据机器的int长度来循环
(在这里可能是16次,
把1移动到字长外面就变成0了)
执行下面的操作;
answer
=
1:
将结果左移一位;
if
(value
1):
如果value的最低位为1,
则answer
|=
1把answer的最低位设为1
value
=
1:
将初始值右移一位
因为初始值跟结果的移动方向相反,
所以可以实现低位高位互换