a & b >> c, which shares the same precedence relationship as the expression
a + b * c. People have adamantly argued with me about how they believe it should be written as
a & (b >> c)to avoid confusion, "in case the reader doesn't know the precedence rules", yet they take no issue with
a + b * cbeing written without parentheses, "since the reader should already know that". The way I see it, if you know that multiplication happens before addition, you should also know that right shift happens before bitwise AND. If you don't know that, you need to review your operator precedence!
That is just how I think of it.My favorite example is \(\displaystyle -3^2\). Is this interpreted as \(\displaystyle (-3)^2 = 9\), or \(\displaystyle -(3^2) = -9\)? It can be reasoned that it should be interpreted as \(\displaystyle 0 - 3^2 = -9\), as there is an implicit leading zero.