java中的异或运算应用

异或运算

例如:
真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。

就是说两个值相异或结果为真。

它是一个二进制运算:

1^1=0

0^0=0

1^0=1

0^1=1

两者相等为0,不等为1.

举个简单的例子:两数交换

java中的异或运算应用

将a与b转为二进制进行运算

在线转换网址:https://tool.lu/hexconvert/

java中的异或运算应用java中的异或运算应用

转换成二进制 就是 a=11 b=101

高位补零,凑齐位数 a=011,b=101

从左往右的a^b

0与1 相比=0^1=1

1与0 相比=1^0=1

1与1 相比=1^1=0

那么再用110与101相比

1与1 相比=1^1=0

1与0 相比=1^0=1

1与1 相比=1^1=1

011 即转为十进制就是3 那么此时b=3

再用110 ^011 =101转为十进制=5

那么此时a=5 就交换成功了!!