unary & is used with 32 bits operands. If the operand literal is not explicitly expressed as 32bits, it can create random casting errors depending on the Python version and the underlying implementation.