php手册 位运算符
二进制原码,反码,补码解释
二进制转十进制
位运算符
例子 名称 结果
$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)
And 按位与 案例
1 & 2 = 0
二进制
1 = 0001
2 = 0010
运算
0010
0001
———
0000
10 & 2 = 10
二进制
10 = 1010
2 = 0010
运算
1010
0010
———
1010
将把 $a 和 $b 中都为 1 的位设为 1。
Or(按位或)
案例
1 | 2 = 3
1 = 0001
2 = 0010
0001
0010
0011 = 3
将把 $a 和 $b 中任何一个为 1 的位设为 1。
xor (按位异或)
案例
1 ^ 2 = 3
二进制
1 = 0001
2 = 0010
运算
0001
0010
————
0011
案例
10 ^ 2 = 8
10 = 1010
2 = 0010
1010
0010
————
1000