## Binary Bitwise Operations Each of the three binary bitwise operations has a different level of precedence: ```javascript and_expr ::= shift_expr | and_expr "&" shift_expr xor_expr ::= and_expr | xor_expr "^" and_expr or_expr ::= xor_expr | or_expr "|" xor_expr ``` * The `&` operator produces the bitwise AND of its arguments, which must be integers. * The `^` operator produces the bitwise XOR (exclusive OR) of its arguments, which must be integers. * The `|` operator produces the bitwise OR (inclusive OR) of its arguments, which must be integers.