### Bit Operators (Integer-only)

Python integers may be manipulated bitwise and the standard bit operations are supported: inversion, bitwise AND, OR, and exclusive OR (a.k.a. XOR), and left and right shifting. Here are some facts regarding the bit operators:

Negative numbers are treated as their 2’s complement value.

Left and right shifts of N bits are equivalent to multiplication and division by (2 ** N) without overflow checking.

For long integers, the bit operators use a “modified” form of 2’s complement, acting as if the sign bit were extended infinitely to the left.

The bit inversion operator ( ~ ) has the same precedence as the arithmetic unary operators, the highest of all bit operators. The bit shift operators ( << and >> ) come next, having a precedence one level below that of the standard plus and minus operators, and finally we have the bitwise AND, XOR, and OR operators (&, ^, | ), respectively. All of the bitwise operators are presented in the order of descending priority in following Table.

#### Integer Type Bitwise Operators

Bitwise Operator Function
~ num (unary) invert the bits of num, yielding -( num + 1)
num1 << num2 expr1 left shifted by expr2 bits
num1 >> num2 expr1 right shifted by expr2 bits
num1 & num2 expr1 bitwise AND with expr2
num1 ^ num2 expr1 bitwise XOR (exclusive OR) with expr2
num1 | num2 expr1 bitwise OR with expr2

We will now present some examples using the bit operators using 30 (011110), 45 (101101), and 60 (111100):

>>> 30 & 45
12
>>> 30 | 45
63
>>> 45 & 60
44
>>> 45 | 60
61
>>> ~30
-31
>>> ~45
-46
>>> 45 << 1
90
>>> 60 >> 2
15
>>> 30 ^ 45
51