c语言一简单习题

if ( a=0xA | a >12 )
if ( 011&10==a ) printf ( ” %d!\n ” , a);
else printf ( ” Right!%d\n ” , a);
else
printf (”Wrong!%d\n” , a);
这里面,011&10==a 是什么意思?&是什么运算,具体怎么运算?求大神

这里面,011&10==a 是什么意思?&是什么运算,具体怎么运算?求大神
&是“与”运算符
0&0=0 0&1=0 1&0=0 1&1=1

011是八进制数转为十六进制是0x09
10是十进制数转为十六进制是0x0A
011&10就是0x09&0x0A也就是1001&1010=1000=0x08
所以 011&10==a 意思是如果a的值等于8则执行 printf ( ” %d!\n ” , a);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-31
&是按位“与”的意思。具体运用如下:
按位“与”运算符
规定如下:
0&0=0 0&1=0 1&0=0 1&1=1
例如: 3&5=?
3的二进制: 00000011
5的二进制: 00000101
-------------------------------
& 00000001
所以3&5=1

----------------------------
望采纳啊!!!O(∩_∩)O~
第2个回答  2013-03-31
C语言中&运算符一般来说,有两种意义:
1. 按位“与” 例如 1101&0010=0000;
2. 取地址 在指针中使用,Int *p = &a; 就是取a 地址的意思。

你的问题中011&10=010也就是十进制的2,011&10==a即2==a。
以上仅供参考,希望对你有帮助。
第3个回答  2013-03-31
是按位进行与运算。
相当于如果a等于0。
相似回答