Java中異或的學習

2021-07-08 15:18:28 字數 1233 閱讀 2500

異域的概念是相同為0不同為1.如果兩個數值異或後的值相同,異或前可能不同。

比如二進位制:0010^0001=0011 

0000^0011=0011

乙個陣列存放了2n+1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?

2,3,2

20010

30011

20010

其中0010 0010結果為0000,0000 ^ 0011 為0011本身

也就是說在乙個整形陣列中,如果相同的數字是成對出現的(位置不一定相鄰),遍歷陣列,並且兩兩異或,結果一定為0.

如果出現過其中一對有缺失數字,即只出現了乙個,則遍歷異或結果為缺失的數字。

class datademo 

; int result = 0;

for(int i = 0 ; i < ins.length; i++)

/*0^2=2

2^3=1

1^2=3

最後的結果為:3

**/system.out.println("最後的結果為:"+result);

}}

反轉字串:

bacb970111

a960000

c981000

1. begin=b=0111 

end=c=1000

2.begin=b^c=0111 ^ 1000 = 1111

3.end=begin ^ end = 1111 ^ 1000 = 0111

4.begin = end ^ begin = 0111 ^ 1111 = 1000

最後結果 begin = 1000 end = 0111

也就是begin=c end=a

system.out.println("-------------------");

string str = "abcde";

int begin = 0;

int end = str.length() - 1;

char chs = str.tochararray();

while(begin < end)");

begin++;

end--;

} /*

edcba

**/system.out.println(new string(chs));

JAVA異或加密

int 或者byte型別的資料異或操作後變成另外乙個數字,再次和同乙個數異或後又變成原來的數字。加密前數字 3 加密後數字 1 解密後數字 3 加密前字元 abcd加密 加密後字元 c af爢筄 解密後字元 abcd加密 public static void main string args str...

Java 與 或 非 異或

位運算子主要針對二進位制,它包括了 與 非 或 異或 從表面上看似乎有點像邏輯運算子,但邏輯運算子是針對兩個關係運算子來進行邏輯運算,而位運算子主要針對兩個二進位制數的位進行邏輯運算。下面詳細介紹每個位運算子。1 與運算子 與運算子用符號 表示,其使用規律如下 兩個運算元中位都為1,結果才為1,否則...

java中 異或運算子的運用

的位運算子中有乙個叫異或的運算子,用符號 表示,其運算規則是 int i 15,j 2 system.out.println i j i j 執行結果是 i j 13.分析上面程式,i 15轉成二進位制是1111,j 2轉成二進位制是0010,根據異或的運算規則得到的是1101,轉成十進位制就是13...