The bit operators have some properties that may be useful for the datalab where you are only allowed to use a small subset of operators to compute required values.
Here are some properties where x is assumed to be of type int (that is, a signed integer) of size 32 bits.
| Expression | = |
|---|---|
| 0 ^ x | x |
| (~0) ^ x | ~x |
| x >> 31 | 0 if x >= 0, and ~0 if x < 0 |
| if x == y what is x ^ y | 0 |
| When is !!x == x | Only if x = 0 or x = 1 |
| (x >> 31) ^ x | x if x >= 0; ~x if x < 0 |