在練習2023年迅雷校招筆試題的第13題,題目如下
13、整數int i = 0xfe78da45; int k = 0xac3189b2;則i^k的值為()
a、0x524953f7 b、0xac308800 c、0xfe79dbf7 d、0x0000001
下面簡單介紹介紹一下異或運算子:
計算機異或運算子 「^」,用於邏輯運算。異或運算法則有:
1:a ^ b = b ^ a;
2:a ^ b ^ c = (a ^ b) ^ c = a ^ (b ^ c);
3:d = a ^ b ^ c => a = d ^ b ^ c;
4:a ^ b ^ a = b;
計算機異或運算如:0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0;
可以看出只有在兩個位不同時結果為1,否則為0;即「相同為0 ,不同為1」
異或的巧妙運用:
1:用於兩數交換:如 a = 5 ; b = 6 若不希望有第三變數來實現a , b 數值交換,可有以下實現方法
a = a ^ b ; b = a ^ b ; a = a ^ b;通過三步運算就可實現交換(a ^ b ^ a = b)或通過
a = a + b ; b = a - b ; a = a - b; 同樣可以實現交換
2:可以找出陣列中缺少的一位數。如a[xor] = b[xor] ^ x; x = a[xor] ^ b[xor];
3:利用a ^ b ^ a = b可以設定加密解密演算法。
因此,上題的答案為:a。
c語言異或運算子 計算機中C語言的 運算子
運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。c 語言內建了豐富的運算子,並提供了以下型別的運算子 本章將逐一介紹算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子和其他運算子。下表顯示了 c 語言支援的所有算術運算子。假設變數a的值為 10,變數b的值為 20,則 請看下面的例項,了...
異或運算子
表示當兩個數的二進位制表示,進行異或運算時,當前位的二進位制相同為0,不同為1.表示為 特點 0異或任何數,是任何數 1異或任何數,任何數取反 任何乙個數字異或自己都等於0 面試題 乙個整型陣列中除了兩個數字之外,其他的數字都出現了兩次。試找出這兩個只出現一次的數字。劍指offer 例如,陣列 中,...
異或運算 運算子 對異或運算子的認識以及初次運用
1 0 1 相同的二進位制位相異或結果不變.int x 3 int y 4 x x y x 3 4 y x y y 3 4 4 3 x x y x 3 4 3 4 上述運算的結果是 x和y的值互換.而過程中並沒有使用別的運算子.即所說的沒有借助其它變數就實現了兩個變數的交換.異或運算是與 並列的位運...