title: Right shift operator in C
body: <p>I got the following code:</p>
  <pre><code>int main(int argc, char *argv[])
  {
      char c = 128;
  
      c = c &gt;&gt; 1;
  
      printf(&quot;c = %d\n&quot;, c);
  
      return 0;
  }
  </code></pre>
  <p>Running the above code on <a href="https://en.wikipedia.org/wiki/Windows_XP" rel="nofollow noreferrer">Windows XP</a> 32 bit, I got the result: <code>-64</code>. Why <code>-64</code>?</p>