c語言xor
A. c語言里的按位異或運算符
按位異或,其操作符為^,形式為
a^b
計算時,根據操作數a和b每位的值,計算結果,當a,b的對應位上值相同時,結果的該位上值為0,否則值為1。
如
char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26
(1)c語言xor擴展閱讀:
異或,英文為exclusive OR,縮寫成xor異或(xor)是一個數學運算符。它應用於邏輯運算。異或的數學符號為「⊕」,計算機符號為「xor」。其運演算法則為:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。
B. C語言中x^y是什麼意思
x^y的意思是按位異或,當兩個數的二進製表示,進行異或運算時,當前位的兩個二進製表示不同則為1相同則為0。
也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。
(2)c語言xor擴展閱讀
若需要交換兩個變數的值,除了通常使用的借用中間變數進行交換外,還可以利用異或,僅使用兩個變數進行交換。
位運算時把數字用二進製表示之後,對每一位上0或者1的運算。理解位運算的第一步是理解二進制。二進制是指數字的每一位都是0或者1.比如十進制的2轉化為二進制之後就是10。
右移運算符m>>n表示把m右移n位。右移n位的時候,最右邊的n位將被丟棄。但右移時處理最左邊位的情形要稍微復雜一點。這里要特別注意,如果數字是一個無符號數值,則用0填補最左邊的n位。如果數字是一個有符號數值,則用數字的符號位填補最左邊的n位。