導航:首頁 > 編程語言 > java位異或

java位異或

發布時間:2023-01-30 21:57:01

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中按位異或與邏輯異或的區別

邏輯沒有異或運算。

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

Ⅲ 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

Ⅳ 在javaSE中位運算符^(按位異或)的特點是什麼

按位異或概念不是JAVA的,而是計算機原理的,它最早是用於匯編,JAVA的^只是異或運算在JAVA的實現而已(C/C++也是用^表示按位異或的)
個人觀點,按位異或運算的最大特點是可逆的,如
A=B^C,那麼C==A^B,B==A^C
而其它按位的運算如 +-*/|&都是不可逆的

Ⅳ JAVA按位異或運算問題

首先取反運算符優先順序高於異或運算符
其次int是32位
28=00011100(前面16位不寫了)
8=00001000
-8=11111000
-28=11100100
所以a=28^-8=00011100^11111000=11100100=-28
a=-28^8=11100100^00001000=11101100=-20
是-20,不是20。樓主看清楚了。

Ⅵ 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中字元串異或的原理

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

Ⅷ 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中按位異或是什麼意思 不太理解,請指教,謝謝!

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

閱讀全文

與java位異或相關的資料

熱點內容
plc定位編程 瀏覽:47
mac命令添加用戶 瀏覽:815
android時間widget 瀏覽:393
qd128h壓縮機參數 瀏覽:287
用單片機測車距 瀏覽:394
去哪裡找加密的便簽 瀏覽:19
武漢訂酒店旅館哪個app平台好 瀏覽:114
c語言在線編譯器位元組流 瀏覽:317
帶隊伍pdf 瀏覽:951
電腦如何形成伺服器 瀏覽:522
javaprint換行 瀏覽:785
華為手機壓縮文件夾怎麼操作 瀏覽:99
c語言垃圾堆這個文件夾可以刪嗎 瀏覽:758
websocketssl加密 瀏覽:924
系統類演算法 瀏覽:657
ai演算法血檢t細胞衰老 瀏覽:473
如何查看文件夾是否安裝過程 瀏覽:195
編譯原理畫出下面的狀態轉換圖 瀏覽:40
倩女幽魂什麼伺服器比較火 瀏覽:466
內江市程序員招聘 瀏覽:466