<< is the bitwise left shift operator. 1<<scale will return the value of scale with the bits shifted (moved) one position to the left.
~ is the bitwise NOT operator. It inverts all the bits in the number (1 becomes 0 and 0 becomes 1). It is applied to ((1<<scale)-1) in this case.
& is the bitwise AND operator. It returns a value where a bit at a certain position is 1 only if the bits in both operands are 1 at that position.
EDIT:
| is the bitwise OR operator. It returns a value where a bit at a certain position is 0 only if the bits in both operands are 0 at that position.
^ is the bitwise XOR operator. It returns a value where a bit at a certain position is 0 only if the bits in both operands are the same at that position.