當前位置:首頁 » 編程語言 » java亦或

java亦或

發布時間: 2022-09-08 00:00:04

java中異或是怎樣算的

概述

i = 14,異或演算法轉換二進制,同則取0異則取1;

解析

異或是一種基於二進制的位運算,用符號XOR或者^表示,其運演算法則是對運算符兩側數的每一個進制位同值則取0,異值則取1.

簡單理解就是不進位加法,如1+1=0,0+0=0,1+0=1.

For example:

3^5 = 6

轉成二進制後就是 0011 ^ 0101 二號位和三號位都是異值取1 末尾兩個1同值取零,所以3^5 = 0110 = 6

而 i = 50 ,j = 60;

所以:

i 的二進制 = 00110010

j 的二進制 = 00111100

同位相同取0,不同取1所以得出來的值為00001110

i = i ^ j;所以i = 00001110 = 14


拓展內容

異或運算符

性質

1、交換律
2、結合律(即(a^b)^c == a^(b^c))
3、對於任何數x,都有x^x=0,x^0=x
4、自反性 A XOR B XOR B = A xor 0 = A

異或運算最常見於多項式除法,不過它最重要的性質還是自反性:A XOR B XOR B = A,即對給定的數A,用同樣的運算因子(B)作兩次異或運算後仍得到A本身。這是一個神奇的性質,利用這個性質,可以獲得許多有趣的應用。 例如,所有的程序教科書都會向初學者指出,要交換兩個變數的值,必須要引入一個中間變數。但如果使用異或,就可以節約一個變數的存儲空間: 設有A,B兩個變數,存儲的值分別為a,b,則以下三行表達式將互換他們的值 表達式 (值) :
A=A XOR B (a XOR b)
B=B XOR A (b XOR a XOR b = a)
A=A XOR B (a XOR b XOR a = b)

#code:

⑵ java異或運算符求詳細過程

int 32位,補碼存儲

inta=51;
intb=-16;
System.out.println("51="+Integer.toBinaryString(a));
System.out.println("-16="+Integer.toBinaryString(b));
intc=a^b;
System.out.println("異或="+Integer.toBinaryString(c));
System.out.println("即="+c);

51 =110011

-16 =

異或 =

原碼為1000。。。111101

即 =-61

⑶ JAVA中按位異或是什麼意思 不太理解,請指教,謝謝!

異或運算沒有聽過,不過位與運算就有,它的原理是:先把十進制(或N進制)轉換成二進制,再分別同位進行與運算,比如:
12&5(java中位與運算是用&符號表示的)
即:12
=
11000
&
5
=
01001
--------------------
=
11001
位異或運算或許是把它們進行異或吧。
PS樓下不能這么說,有些演算法還得用到這些位操作,用得妙的還真叫人拍案叫絕

⑷ java 異或 字元串找不同 是怎麼實現的

函數是運用了異或運算的特點,當兩次異或同一字元的時候,他們的結果就相互抵消(等同於沒有異或),所以嚴格說來,這個函數並不能判斷兩個字元串是否完全相同。他只是判斷把這兩個字元串,的所有字元全部統計一遍以後,是不是所有的字母都出現偶數次。如果是函數就返回0,否則就返回非0。

⑸ java中的異或 與或的區別

true || false || false 結果是true
true ^ false ^ false,結果也是true
false || true || false 結果是true
false ^ true ^ false 結果也是true
false || false || true => true
false ^ false ^ true => true
就是說三個條件只有一個為真的時候,他們運算結果是一樣的。
三個條件都是假的情況,運算結果都是false,也相同
但這不表示其他情況也能這樣互換。

⑹ java中的(或運算,異或運算,與運算)解釋下

java中或運算、異或運算、與運算的使用實例和解釋如下:

publicclassTest{publicstaticvoidmain(String[]args){
//1、左移(<<)
//然後左移2位後,低位補0:
////換算成10進制為20System.out.println(5<<2);//運行結果是20
//2、右移(>>)高位補符號位
//然後右移2位,高位補0:
//
System.out.println(5>>2);//運行結果是1
//3、無符號右移(>>>)高位補0
//例如-5換算成二進制後為:0101取反加1為1011
///
/我們分別對5進行右移3位、-5進行右移3位和無符號右移3位:
System.out.println(5>>3);//結果是0
System.out.println(-5>>3);//結果是-1
System.out.println(-5>>>3);//結果是536870911
//4、位與(&)
//位與:第一個操作數的的第n位於第二個操作數的第n位如果都是1,那麼結果的第n為也為1,否則為0
System.out.println(5&3);//結果為1
System.out.println(4&1);//結果為0
//5、位或(|)
//第一個操作數的的第n位於第二個操作數的第n位只要有一個是1,那麼結果的第n為也為1,否則為0
System.out.println(5|3);//結果為7
//6、位異或(^)
//第一個操作數的的第n位於第二個操作數的第n位相反,那麼結果的第n為也為1,否則為0
System.out.println(5^3);//結果為6
//7、位非(~)//操作數的第n位為1,那麼結果的第n位為0,反之。System.out.println(~5);//結果為-6}}

⑺ java中按位異或與邏輯異或的區別

邏輯沒有異或運算。

位異或指:異或運算^,異或運算它都是以二進制數據為基礎進行運算,1^1=00^0=11^0=10^1=1

⑻ java中字元串異或的原理

存在按位異或,就是根據數據在內存中的二進制數的存放形式進行異或操作,
但是不存在字元串的異或
如果在內存中的數據:01010101和10101010異或,結果就是11111111,然後再將
11111111轉換成相應的數據輸出結果
注意:Java中沒有字元串的異或、與、或、非操作,不是C語言那樣(除非是你自己定義異或操作)

⑼ java怎樣用異或進行

異或運算(^)都以二進制數據為基礎進行的運算。也就是說當代碼中使用到異或運算時,都會先將兩個條件進行轉換,轉換成二進制數據後,再進行運算。異域中同位如果值相同(都是0或者都是1)則為0,不同(一個是0,一個是1)為1。
例如
int a=4;
int b=6;
int c = a^b;//c的值是a和b的異或。值為2.

過程
1、a的值二進制是
0000 0100 //這里去低8位,因為高位都一致。

2、b的值二進制是
0000 0110

3、異或後
0000 0010 //結果是2

⑽ java中6異或3是多少

5。
^異或運算符(當兩個數字不同時為1,其餘為0)6的二進制000001103的二進制00000011所以6^3=00000101答案是5。

熱點內容
好車看哪些配置 發布:2025-01-13 10:53:44 瀏覽:655
android點擊圖片事件 發布:2025-01-13 10:53:43 瀏覽:976
c語言拷貝函數 發布:2025-01-13 10:52:23 瀏覽:781
php判斷手機訪問 發布:2025-01-13 10:46:06 瀏覽:762
資料庫十張表 發布:2025-01-13 10:41:50 瀏覽:395
仿php 發布:2025-01-13 10:41:40 瀏覽:811
後綴解壓什麼意思 發布:2025-01-13 10:35:17 瀏覽:185
索尼安卓11如何退回安卓10 發布:2025-01-13 10:24:09 瀏覽:127
程序編譯結構 發布:2025-01-13 10:24:08 瀏覽:90
創建郵箱地址伺服器連接錯誤 發布:2025-01-13 09:49:24 瀏覽:723