在java中是Logical Xor和Bitwise Xor共享相同的^
我试着看我的Java书,似乎是这样。这么奇怪?
两者兼而有之,具体取决于操作数。
JLS 15.22.1:
当运算符 &、^ 或 | 的两个操作数都是可转换为 (§5.1.8( 到原始整型的类型时......
或者换句话说,两个整数操作数会产生按位 XOR。
0 1
0 0 1
1 1 0
或 JLS 15.22.2:
当 &、^ 或 | 运算符的两个操作数都是布尔值或布尔值类型时,按位运算符表达式的类型为布尔值。
false true
false false true
true true false
运算符根据操作数执行不同的功能一点也不奇怪 - 考虑加法与字符串连接。 2 + 2
和"Hello " + "world!"
显然是两种不同类型的操作。