That's a separate issue. I believe (but haven't checked) that the << operator has lower precedence than +, so the compiler interprets the expression as:
unsigned int k = 0x80 << (24 + 0x81);
and it's pretty obvious why this causes an error. Instead, try compiling:
unsigned int k = (0x80 << 24) + 0x81;
You may get an error message about signed-integer overflow, but not about shift-count overflow.
Hi Alan,
Your analysis is correct, I did not check the warning message correctly.
Peter