正文
不熟悉位运算的人,见了«肯定会一头雾水,所以这里有必要稍微写一些。
例子 | 名称 | 结果 |
---|---|---|
$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”)。 |
位的概念,比如:
4的32位:00000000000000000000000000000100
4的64位:0000000000000000000000000000000000000000000000000000000000000100
理解了位的概念,再来看上面的位运算符,就好理解了。 下面参考资料可以好好看看,会理解的更透彻。