存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或操作,
但是不存在字符串的异或
如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将
11111111转换成相应的数据输出结果
注意:Java中没有字符串的异或、与、或、非操作,不是C语言那样(除非是你自己定义异或操作)
两个字符的异或计算是将字符转换为其ASCII码的二进制数
然后进行按位异或计算10和01为1,11和00为0
最后再转回整形数
异或运算有两个特性:
1、一个数异或本身恒等于0,如5^5恒等于0;
2、一个数异或0恒等于本身,如5^0恒等于5。
所以java中下面式子就是用异或来实现交换:
算式一:a=b^(a^a)=a^(a^b);
算式二:b=a^(b^b)^(a^a)=a^(a^b)^(a^b);