欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

java使用异或实现变量互换和异或加密解密示例

时间:2021-02-23 15:14:37|栏目:JAVA代码|点击:

复制代码 代码如下:

import java.util.Scanner;

public class VariableExchange {
    public static void main(String[] args){
        System.out.println("请输入变量A的值");
        Scanner scanner=new Scanner(System.in);
        long A=scanner.nextLong();
        System.out.println("请输入变量B的值");
        Scanner scannerB=new Scanner(System.in);
        long B=scannerB.nextLong();
        System.out.println("A="+A+"\t"+"B="+B);
        System.out.println("执行变量互换...");
        A=A^B;
        B=B^A;
        A=A^B;
        System.out.println("A="+A+"\t"+"B="+B);
    }
}

其实现是巧用了异或运算。

其原理:

复制代码 代码如下:

a = a ^ b;
b = b ^ a;
a = a ^ b;

复制代码 代码如下:

a1=a^b
b=a1^b=(a^b)^b=a
a=a1^b =a1^(a1^b)=a1^a1^b=b

同一变量与另一变量和其异或值异或等于自身。

该原理同样可运用于加密。将其值与key进行异或得到加密后的串,解密操作也只需与key再异或一次。

补充:
Scanner类:
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
例1:

复制代码 代码如下:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

例2:

复制代码 代码如下:

Scanner sc = new Scanner(new File("myNumbers"));
 while (sc.hasNextLong()) {
       long aLong = sc.nextLong();
}

上一篇:Spring Boot 初始化运行特定方法解析

栏    目:JAVA代码

下一篇:java web过滤器处理乱码

本文标题:java使用异或实现变量互换和异或加密解密示例

本文地址:http://www.codeinn.net/misctech/68247.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有