Plain and long integer types support additional operations that make sense only for bit-strings. Negative numbers are treated as their 2's complement value (for long integers, this assumes a sufficiently large number of bits that no overflow occurs during the operation).
The priorities of the binary bit-wise operations are all lower than the numeric operations and higher than the comparisons; the unary operation "~" has the same priority as the other unary numeric operations ("+" and "-").
This table lists the bit-string operations sorted in ascending priority (operations in the same box have the same priority):
- x | y: bitwise or of x and y
- x ^ y: bitwise exclusive or of x and y
- x & y: bitwise and of x and y
- x << n: x shifted left by n bits. Note: Negative shift counts cause a ValueError to be raised.
- x >> n: x shifted right by n bits. Note: Negative shift counts cause a ValueError to be raised.
- ~x: the bits of x inverted