title: is shifting by more bits than are in a variable an undefined operation in c?
body: <p>Specifically I am doing this</p>
  
  <pre><code>Word32 x = 18653184;
  Word32 y;
  Word16 shift = 269;
  y = x &gt;&gt; shift;
  </code></pre>
  
  <p>I'd expect the result of this logical shift to be 0, but I am instead getting 2277.  How does C define this type of operation?</p>