异或替换的原理?
来源:7-2 项目作业
铜雀春深7748616
2021-07-12 11:51:34
不太明白异或替换是什么原理,x=x^y;之后x变成y了,不会造成x变量内数值的丢失吗?为什么最后还要再来一遍x=x^y;呀?
int x=3,y=4;
System.out.println("x="+x+",y="+y);
x=x^y;
y=x^y;
x=x^y;
System.out.println("交换后x="+x+",y="+y);
1回答
同学你好,x=x^y;执行一次此语句时,x是不会变成y的,此时x的值是x与y异或之后的结果,y值无变化。
异或是一种基于二进制的位运算符,其运算法则是对运算符两侧数的每一个二进制单位,同值取0,异值取1。
异或运算符重要的性质是自反性:A^B^B=A,即对给定的数A,用同样的运算因子(B)做两次异或运算后仍得到A的本身。上述代码的运算过程如下:
祝学习愉快~
相似问题