java中按位包含或与排他或的区别
我理解前两个,但不理解第三个。异或判断每个位是否不同 1异或1=0java中按位包含或与排他或的区别,java,operators,bitwise-operators,Java,Operators,Bitwise Operators,我理解前两个,但不理解第三个。异或判断每个位是否不同 1异或1=0 1异或0=1 0异或1=1 0异或0=0 换言之,“要么,但不是两者” 0011 XOR 0101=0110异或(XOR)定义为: public class Operators { public static void main(String[] args) { int a = 12; System.out.println("Bitwise AND:"+(12&12))
1异或0=1
0异或1=1
0异或0=0 换言之,“要么,但不是两者” 0011 XOR 0101=0110异或(
XOR
)定义为:
public class Operators {
public static void main(String[] args) {
int a = 12;
System.out.println("Bitwise AND:"+(12&12));
System.out.println("Bitwise inclusive OR:"+(12|12));
System.out.println("Bitwise exclusive OR:"+(12^12));
}
}
OUTPUT:
Bitwise AND:12
Bitwise inclusive OR:12
Bitwise exclusive OR:0
也就是说,如果两个值相同,则为0
,如果两个值不同,则为1
因此,给定两个完全相等的位模式,每个异或位将计算为
0
,因为每个位在两个位置都有1
,或者在两个位置都有0
。第三个是异或操作(异或)
它说,或者说应该是:
其中类似项为假(0)
不同的情况将是正确的(1)
所以二进制中的12等于1100
因此,在此处执行按位异或:
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
每列都有相同的数字,要么都是1,要么都是0
XOR说,两者应该是不同的。因此,所有零都是按位包含或(|)表示正常的或操作
位异或(^)表示异或运算
1 1 0 0
1 1 0 0
---------
0 0 0 0
---------