我假设在 Java 中所有按位运算符都具有相同的优先级。但实际上,按位运算符 AND (&) 的优先级高于按位运算符 OR (|)。请参见以下程序:
public class HelloWorld {
public static void main(String[] args) {
int a = 1 | 2 ^ 3 & 5;
int b = ((1 | 2) ^ 3) & 5;
int c = 1 | (2 ^ (3 & 5));
System.out.print(a + "," + b + "," + c);
}
以上程序的结果是3,0,3。 因此,它也证明了XOR (^)具有更高的优先级。有人能解释一下为什么根据上面的结果XOR (^)比OR (|)具有更高的优先级吗?他们如何定义优先级?
2a√b/c3x+y^z4-5
这样的事物会被省略。另外,如前所述,优先级可能会因语言和上下文而异。 - Beejor