1. 程式人生 > >php位運算

php位運算

$a << $b Shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示“乘以 2”)。
$a >> $b Shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示“除以 2”)。
$a & $b And(按位與) 將把 $a 和 $b 中都為 1 的位設為 1。
$a | $b Or(按位或) 將把 $a 或者 $b 中為 1 的位設為 1。相當於相加
$a ^ $b Xor(按位異或) 將把 $a 和 $b 中不同的位設為 1。
~ $a Not(按位非) 將 $a 中為 0 的位設為 1,反之亦然。

例子:
$a=5;
$b=2;
$a(101) << $b(010) = 20(10100)
$a(101) >> $b(010) = 1(1)
$a(101) & $b(010) = 0(0)
$a(101) | $b(010) = 7(111)
$a(101) ^ $b(010) = 7(111)
~$a(101) = -6(11111111111111111111111111111010)

注,二進位制負數的表標方法:
在計算機中,負數以其正值的補碼形式表達。
6的編碼(00000000000000000000000000000110)
6的反碼(11111111111111111111111111111001)
6的補碼(11111111111111111111111111111010)=6的反碼+1
-6的編碼是11111111111111111111111111111010

作者:frycn 
原文:https://blog.csdn.net/frycn/article/details/70158328