php位运算 $a & $b and(按位与) $a | $b or(按位或) $a ^ $b Xor(按位异或) ~$a Not(按位非) $a << $b Shift left(左移) $a >> $b Shift right(右移) 详解 $a & $b 按位与 把$a和$b中都为1的位设为1; 例:10 & 12 = 8 10 1010 12 1100 1000 8 $a | $b 按位或 把$a或$b中有一个为1的为设为1; 例:10 | 12 = 14 10 1010 12 1100 1110 14 $a ^ $b 按位异或 例:10 ^ 12 10 1010 12 1100 0110 6 ~a 按位非 把$a中的为0的为设为1,1的为设为0 例:~10 = 10 1010 1111111111111111111111111111111111111111111111111111111111110101 -11 $a << $b 左移 把$a中的为向左移动$b次(每一次移动都表示乘以2); 例:1 << 10 = 1024 1(1) 左移10位 10000000000(1024) 相当于1*2的10次方,php中没有幂运算真是郁闷。 $a >> $b 右移 把$a中的为向右移动$b次(每一次移动都表示除以2); 例:1024 << 2 = 1256 10000000000(1024) 右移2位就是 100000000(256) php为运算$a & $b and(按位与)$a | $b or(按位或)$a ^ $b Xor(按位异或)~$a Not(按位非)$a << $b Shift left(左移)$a >> $b Shift right(右移) 详解$a & $b 按位与 把$a和$b中都为1的位设为1;例:10 & 12 = 810 101012 1100 1000 8 $a | $b 按位或 把$a或$b中有一个为1的为设为1;例:10 | 12 = 1410 101012 1100 1110 14 $a ^ $b 按位异或例:10 ^ 1210 101012 1100 0110 6 ~a 按位非 把$a中的为0的为设为1,1的为设为0例:~10 = 10 1010 1111111111111111111111111111111111111111111111111111111111110101 -11 $a << $b 左移 把$a中的为向左移动$b次(每一次移动都表示乘以2);例:1 << 10 = 10241(1) 左移10位 10000000000(1024)相当于1*2的10次方,php中没有幂运算真是郁闷。 $a >> $b 右移 把$a中的为向右移动$b次(每一次移动都表示除以2);例:1024 << 2 = 125610000000000(1024) 右移2位就是 100000000(256)