## Use bitwise operations for checking numbers between 0 and any 2<sup>n</sup>-1 ## Might be a bit of an edge case, but it could come in handy sometimes. It relies on the fact that all numbers to which 2<sup>n</sup>-1 applies have the rightmost n bits set to 1. So, 7<sub>10</sub> == 00000111<sub>2</sub>, 15<sub>10</sub> == 00001111<sub>2</sub>, 31<sub>10</sub> == 00011111<sub>2</sub> and so on. The trick is `x&~n`. This will return true whenever `x` is ***not*** between 0 and `n` (inclusive), and false otherwise. It saves 6 bytes from the next shortest equivalent expression: `x>=0&&x<=n`, but obviously only works when `n` satisfies 2<sup>n</sup>-1.