php的邏輯運算子中,xor表示邏輯異或
$a
xor$b
結果
如果 $a 和 $b 有且僅有乙個為 true,則返回 true;如果都是true 或 false,則返回false。
然而在測試xor運算子時,發現一點問題
錯誤情況1
<?php
$a = false
xortrue;
var_dump($a);
?>
結果1
boolean
false
情況2
<?php
$a = true
xo***lse;
var_dump($a);
?>
結果2
boolean
true
這是怎麼回事呢?
我們換個測試xor運算子的方式
情況3
<?php
echo
false
xortrue;
?>
結果3
1
這樣就沒問題了,那麼前兩種情況是**有毛病呢?
情況4
<?php
$a = (false
xortrue);
var_dump($a)
?>
結果4
boolean
true
這樣就對了,可見應是運算子優先順序導致的。
在php中,and、or、xor的運算子優先順序是比 = 低的,在這種情況下,加個小括號就好了……
異或運算子
表示當兩個數的二進位制表示,進行異或運算時,當前位的二進位制相同為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的值互換.而過程中並沒有使用別的運算子.即所說的沒有借助其它變數就實現了兩個變數的交換.異或運算是與 並列的位運...
C的 異或 !運算子
1 按位與運算子 按位與運算將兩個運算分量的對應位按位遵照以下規則進行計算 0 0 0,0 1 0,1 0 0,1 1 1。即同為 1 的位,結果為 1,否則結果為 0。例如,設3的內部表示為 00000011 5的內部表示為 00000101 則3 5的結果為 00000001 2 按位或運算子 ...