|Synopsis:||Bitwise operations shall only be applied on operands of unsigned type.|
Bitwise operations on operands of signed type may result in undefined behavior and implementation defined behavior.
int mask = 0x80000000; unsigned int u = mask >> 24; /* WRONG */
The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a non-negative value, the value of the result is the integral part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the resulting value is implementation defined.