異或運算怎麼算?
邏輯異或運算是什麼
在C++中用 ^ 運算符實現按位異定運算。
expression1^expression2
參與運算的兩個值,如果兩個相應bit位相同,則結果為0,否則為1。 即:
0^0 = 0,
1^0 = 1,
0^1 = 1,
1^1 = 0
簡單說,異或就是相同的出1,不同的出0
異或操作具體是怎樣計算的?
說白了就是相同為假,不同為真
1^1=0 0^0=0
1^0=1 0^1=1
舉個例子:有道經典的題範a和b不通過第三個變量來交換值;
int a=2,b=5;
a=a^b;
b=a^b;
a=a^b;
樓主試一下就明白了。
java中異或是怎樣算的
異或這些位運算都是針對二琺制的。
i的二進制為110010.
j的二進制為111100.
110010
111100
001110=>這就是結果了。最後轉換為十進制 14
一位一位的看,異或是相同為0 不同為1.
C語言中1^8怎麼算?^是按位異或運算符
1和8都是int型,且都是正整數,內存中原碼形式存儲
1的原碼是00000000 00000000 00000000 0000001
8的原碼是00000000 00000000 00000000 0001000
按位異或,顧名思義是對應的二進制位計算,口訣相同0,相異為1.就是對應的二進制位,相同的話該二進制位計算出來是0,不同的話計算出來才是1
舉例: 0
^ 0
-----
0
***************
1
^1
---------
0
************
0
^1
------------
1
**************************************
所以
00000000 00000000 00000000 0000001
^00000000 00000000 00000000 0001000
----------------------------------------------------
00000000 00000000 00000000 0001001
這個二進制數按照原碼解釋,對應9
所以結果是9