您的位置:首页 > 编程语言 > Java开发

不使用第三个变量的情况下,实现两个变量间的互换。

2017-05-12 10:14 567 查看
代码如下:

package test;

import java.util.Scanner;
/*
*@author xpengfei
*@version
*创建时间:May 10, 2017  5:21:06 PM
*/

/*
*类信息:不借助第三个变量,实现两个变量之间的互换
*/
public class ch_17 {
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);
}
}


主要是通过异或实现,类比于通过异或符号实现简单的加密功能

第一行的A=A^B 即是将A^B后的一串编码赋值给A以便下面实现A与B得互换;

B=B^A 通过此行代码实现将A得原有值赋给B

A=A^B 将B得原有值赋给A

至此A与B之间已实现互换。

Scanner scan=new Scanner(System.in);
System.out.println("请输入一个英文字符串或解密字符串:");
String passwd=scan.nextLine();
char[]array=passwd.toCharArray();
for(int i=0;i<array.length;i++){
array[i]=(char)(array[i]^20000);
}
System.out.println("加密或解密后的结果如下:");
System.err.println(new String(array));


代码中的最后一行System.err.println(new String(array));是通过err函数手动输出错误信息。

将结果以错误信息形式输出,更加醒目。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java