$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
转载请注明原文地址: https://ju.6miu.com/read-667153.html