title: Why does (1 >> 0x80000000) == 1?
body: <p>The number 1, right shifted by anything greater than 0, should be 0, correct?  Yet I can type in this very simple program which prints 1.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
          int b = 0x80000000;
          int a = 1 &gt;&gt; b;
          printf("%d\n", a);
  }
  </code></pre>
  
  <p>Tested with gcc on linux.</p>