我查了优先级,顺序应该是先-c,其结果&b,再拿这步的结果与a进行异或运算,算出3,但是答案是1,主要是没搞懂&-两个连在一起该怎么办,求大神解答!!!
a^b&-c 是·1
先是-c是-3
-3的二进制补码是 11111101
再计算b&-3,b是2
2的二进制补码是 00000010
11111101
& 00000010
= 00000000
最后
1 ^ 0 = 1
a、b、-c的二进制如下:
a=0000 0001
b=0000 0010
c=0000 0011
-c=1111 1101(C取反+1)
a^b的结果是: 0000 0011(不同为1)
再与-c相与:
0000 0011 (a^b)
1111 1101 (-c)
= 0000 0001(所以结果是1)
a^b=3
3&-3=1
同一个数的正负值&的结果都是1