@scopatz These bitshift assigns have no defined order as it's written. It's up to the compiler to decide which order to place them in. The warning generated is:
```
warning: unsequenced modification and access to 'exp' [-Wunsequenced]
                  (((exp >>= 1) & 01? 100.: 1) * \
                         ^
```