位运算:二进制运算
Java的异或运算^
真^假=真 假^真=真 假^假=假 真^真= 假,这四个是在网上copy的例子,真是1,假是0
但它却是说明了Java异或运算的基本法则,那就是:只要两个条件同时为真或假,其结果都为假(这里要注意区别 Java的与运算—其为真真为真,假假为假);
但仅当两条件中一个为真,另一个为假时,结果为真(感觉有点叛逆哦?不合常理,不走寻常路)。
但 Java的异或运算还有一个前提那就是它都是以二进制数据为基础进行的运算。
也就是说当我们在使用代码中使用到异或运算时,它都会先将两个条件进行转换, 转换成二进制数据后,再进行运算,例如:
int a = 4^6;这里的4和6 都是int型数据,在进行运算时,4对应的二进制数为:100(0100);6对应的是:110(0110),这样实际的运算方程是:int a = 0100^0110;
对齐数值做异或运算
0 — 0 0
1 — 1 0
0 — 1 1
0 — 0 0
0100与0110异或运算的结果是0010(这是二进制的数据)
对应转换成十进制就是2.
这就是Java里面对于异或运算的内部运算机制