java使用異或?qū)崿F(xiàn)變量互換和異或加密解密示例
import java.util.Scanner;
public class VariableExchange {
public static void main(String[] args){
System.out.println("請(qǐng)輸入變量A的值");
Scanner scanner=new Scanner(System.in);
long A=scanner.nextLong();
System.out.println("請(qǐng)輸入變量B的值");
Scanner scannerB=new Scanner(System.in);
long B=scannerB.nextLong();
System.out.println("A="+A+"\t"+"B="+B);
System.out.println("執(zhí)行變量互換...");
A=A^B;
B=B^A;
A=A^B;
System.out.println("A="+A+"\t"+"B="+B);
}
}
其實(shí)現(xiàn)是巧用了異或運(yùn)算。
其原理:
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
同一變量與另一變量和其異或值異或等于自身。
該原理同樣可運(yùn)用于加密。將其值與key進(jìn)行異或得到加密后的串,解密操作也只需與key再異或一次。
補(bǔ)充:
Scanner類:
一個(gè)可以使用正則表達(dá)式來(lái)解析基本類型和字符串的簡(jiǎn)單文本掃描器。
例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();
}
- java異或加密算法
- Java中位運(yùn)算(移位、位與、或、異或、非) 的簡(jiǎn)單實(shí)例
- Java中使用異或運(yùn)算符實(shí)現(xiàn)加密字符串
- Java編程實(shí)現(xiàn)對(duì)十六進(jìn)制字符串異或運(yùn)算代碼示例
- Java中使用異或語(yǔ)句實(shí)現(xiàn)兩個(gè)變量的互換
- Java使用異或運(yùn)算實(shí)現(xiàn)簡(jiǎn)單的加密解密算法實(shí)例代碼
- java中的異或問(wèn)題代碼解析
- Java異或技操作給任意的文件加密原理及使用詳解
- java實(shí)現(xiàn)兩個(gè)文件的異或運(yùn)算
- Java中異或的深入講解
相關(guān)文章
Java如何用一個(gè)統(tǒng)一結(jié)構(gòu)接收成員名稱不固定的數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Java如何用一個(gè)統(tǒng)一結(jié)構(gòu)接收成員名稱不固定的數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
mybatis in查詢條件過(guò)長(zhǎng)的解決方案
這篇文章主要介紹了mybatis in查詢條件過(guò)長(zhǎng)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
淺談Java中Spring Boot的優(yōu)勢(shì)
在本篇文章中小編給大家分析了Java中Spring Boot的優(yōu)勢(shì)以及相關(guān)知識(shí)點(diǎn)內(nèi)容,興趣的朋友們可以學(xué)習(xí)參考下。2018-09-09
Java Adapter 適配器模式(類適配器,對(duì)象適配器)優(yōu)缺點(diǎn)對(duì)比
這篇文章主要介紹了Java 適配器模式(類適配器,對(duì)象適配器)優(yōu)缺點(diǎn)對(duì)比的相關(guān)資料,java 適配器在基礎(chǔ)知識(shí)中還是比較重要的,這里就說(shuō)下如何使用,需要的朋友可以參考下2016-12-12
Java整型數(shù)與網(wǎng)絡(luò)字節(jié)序byte[]數(shù)組轉(zhuǎn)換關(guān)系詳解
這篇文章主要介紹了Java整型數(shù)與網(wǎng)絡(luò)字節(jié)序byte[]數(shù)組轉(zhuǎn)換關(guān)系,結(jié)合實(shí)例形式歸納整理了java整型數(shù)和網(wǎng)絡(luò)字節(jié)序的byte[]之間轉(zhuǎn)換的各種情況,需要的朋友可以參考下2017-08-08
java多線程編程之InheritableThreadLocal
這篇文章主要為大家詳細(xì)介紹了java多線程編程之InheritableThreadLocal,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Springboot配置文件內(nèi)容加密代碼實(shí)例
這篇文章主要介紹了Springboot配置文件內(nèi)容加密代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Java轉(zhuǎn)換解析中間帶有 “T“和“Z“ 的時(shí)間格式
這篇文章主要給大家介紹了關(guān)于Java轉(zhuǎn)換解析中間帶有 “T“和“Z“ 的時(shí)間格式,相信很多小伙伴在時(shí)間格式轉(zhuǎn)換的時(shí)候非常頭疼,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Java實(shí)現(xiàn)CORS跨域請(qǐng)求的實(shí)現(xiàn)方法
本篇文章主要介紹了Java實(shí)現(xiàn)CORS跨域請(qǐng)求的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

