Bitwise operators allow you to turn specific bits within an integer on or off. If both the left- and right-hand parameters are strings, the bitwise operator will operate on the characters' ASCII values.
Table 15-3. Bitwise Operators
|$a & $b||And||Bits that are set in both $a and $b are set.|
|$a | $b||Or||Bits that are set in either $a or $b are set.|
|$a ^ $b||Xor||Bits that are set in $a or $b but not both are set.|
|~ $a||Not||Bits that are set in $a are not set, and vice versa.|
|$a << $b||Shift left||Shift the bits of $a $b steps to the left (each step means "multiply by two")|
|$a >> $b||Shift right||Shift the bits of $a $b steps to the right (each step means "divide by two")|
Don't right shift for more than 32 bits on 32 bits systems. Don't left shift in case it results to number longer than 32 bits.