运算符优先级为|,〜和&运营商?

时间:2014-06-14 14:49:00

标签: c++ c bit-manipulation operator-precedence associativity

我对这些逻辑运算符感到困惑。有人可以解释这些运算符的优先级和关联规则。在逐位操作中,a = 011,b = 010和c = 001 在d中是否应该首先否定或者评估是从右到左开始并且优先级更高? 输出为4,3,3。

#include<stdio.h>
int main()
{
 int a=3,b=2,c=1,d,e,f;
 d=~a|b&c;
 printf("d=%d\n",d);
 e=a|b&~c;
 printf("d=%d\n",e);
 f=a|b&c;
 printf("d=%d\n",f);
 return 0;
}

1 个答案:

答案 0 :(得分:2)

C一元运算符(例如~)的优先级高于二元运算符。

&运算符的优先级高于|运算符。

有关运算符优先级的摘要,请参阅man 7 operators