Bitwise AND Assignment Operator (&=)
Performs a bitwise AND on the value of a variable and the value of an expression and assigns the result to the variable.
Using this operator is almost the same as specifying result = result & expression, except that result is only evaluated once.
The &= operator coerces the arguments to matching data types. Then the &= operator looks at the binary representation of the values of result and expression and does a bitwise AND operation on them.
The output of this operation behaves like this:
0101 (result) 1100 (expression) ---- 0100 (output)
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.