为什么用异或运算可以实现两变量的互换
前言
一、异或运算
1.基本性质
(1)任意一个变量与自身异或运算结果为0,例如A^A=0;
(2)任意一个变量与0异或运算结果为变量本身,例如A^0=A;
(3)异或运算具有结合律:(A ^ B) ^ C=A ^ (B ^ C);
(4)异或运算具有交换律:A ^ B = B ^ A;
2.两变量互换的关键语句
A=A^B;
B=B^A;
A=A^B;
(为了详细说明,添加的A1、B1)
–&第一步&–
A1 =A ^ B;
赋值符号右边 A ^ B 赋值给A1;
–&第二步&–
B1 =B ^ A1;
赋值符号右边 B ^ A1=B ^ ( A ^ B)=(B ^ B )^ A=0 ^ A=A;
此时赋值符号两边:B1=A;
–&第三步&–
A =A1 ^ B1;
赋值符号右边 A1 ^ B1=(A ^ B)^ A =A ^ A ^ B=0 ^ B=B;
此时赋值符号两边:A = B;
A、B完成交换
二、用异或实现两变量互换 完整代码
package com.test;
import java.util.*;
public class VariableExchange{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入A的值:");
long A=scan.nextLong(); //输入第一个变量
System.out.println("请输入B的值:");
long B=scan.nextLong(); //输入第二个变量
System.out.println("A="+A+"\tB="+B);
system.out.println("-----**两变量交换值后为**-----")
A=A^B;
B=B^A;
A=A^B;
System.out.println("A="+A+"\tB="+B);
}
}
三、运算结果
总结
通过异或运算符进行高效互换,可不使用第三变量,从而减少系统资源消耗。