三目运算搞不懂

SeanYoung 6月19日提问
1
printf("%c",(a)&(a-1)?'n':'y');

大神们帮我看一下

查看全部 4 个回答

1

三元运算符其实很简单,a?'n':'y' 当a为真时,值等于n。当a为假时,值等于y。在你这个表达式中,包含&运算符。&两边操作数对应位上全为1时,结果的该位值为1。否则该位值为0
比如
0x12&0x23 转为二进制为:B00010010&B00100011,按位计算结果为B00000010,即结果为0x02。

推荐答案

5

已采纳

判断a是不是2的幂,具体解释见http://blog.csdn.net/navyifan...

相似问题