Bitwise AND Operator (&)
Performs a bitwise AND on two expressions.
The & operator coerces the arguments to matching data types. Then the & operator looks at the binary representation of the values of two expressions and does a bitwise AND operation on them. The data types of the arguments determine the data type returned by this operator.
The result of this operation behaves as follows:
0101 (expression1) 1100 (expression2) ---- 0100 (result)
Any time both of the expressions have a 1 in a digit, the result has a 1 in that digit. Otherwise, the result has a 0 in that digit.