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
| Example | Name | Result | 
|---|
| $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") | 
| Warning | 
| 
     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.
     |