首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

2个有关问题

2012-02-16 
2个问题main(){ints32s^32printf( %d ,s)getch()}为什么得0,s^32什么意思啊?#includestdio.h i

2个问题
main()
{int   s=32;s^=32;
printf( "%d ",s);
getch();
}
为什么得0,s^=32什么意思啊?


#include   "stdio.h "
int   f(int   a[],int   n)
{if(n> 1)
{return   a[0]+f(a+1,n-1);   }
else   return   a[0];
}
int   main(void)
{int   aa[10]={1,2,3,4,5,6,7,8,9,10},s;
s=f(aa+2,4);   printf( "%d ",s);
getch();
}
我算得12啊!(3+4+5)          
为什么答案得18呢,18是怎么得来的?return   a[0]+f(a+1,n-1)有什么用啊?

[解决办法]
1)

s^=32

就是

s = s ^ 32

^是异或的意思,就是不同的为1,相同为0

s 和 s 每个2进值位都相同,所以结果为 0
[解决办法]
return a[0]+f(a+1,n-1)有什么用啊?

----------------递归相加
[解决办法]
楼上看过来,32^3 是 100000^000011 = 100011 = 35 。还有什么问题不?!
楼主该结贴了

热点排行