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á)式來解析基本類型和字符串的簡單文本掃描器。
例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();
}
相關(guān)文章
SpringCloud中的Feign服務(wù)間的調(diào)用詳解
這篇文章主要介紹了SpringCloud中的Feign服務(wù)間的調(diào)用詳解,Feign 是一個(gè)聲明式的 REST 客戶端,它能讓 REST 調(diào)用更加簡單,Feign 供了 HTTP 請(qǐng)求的模板,通過編寫簡單的接口和插入注解,就可以定義好 HTTP 請(qǐng)求的參數(shù)、格式、地址等信息,需要的朋友可以參考下2024-01-01java出現(xiàn)no XXX in java.library.path的解決及eclipse配
這篇文章主要介紹了java出現(xiàn)no XXX in java.library.path的解決及eclipse配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Java語言實(shí)現(xiàn)簡單FTP軟件 FTP連接管理模塊實(shí)現(xiàn)(8)
這篇文章主要為大家詳細(xì)介紹了Java語言實(shí)現(xiàn)簡單FTP軟件,F(xiàn)TP連接管理模塊的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Java通過值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn)
本文主要介紹了Java通過值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02