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):
Operation | Result | Notes |
---|---|---|
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 | (1), (2) |
x >> n |
x shifted right by n bits | (1), (3) |
~x |
the bits of x inverted |
, Notes: