title: Why -1 >> 1 is -1 ? And 1 >> 1 is 0!
body: <p>I have next code:   </p>
  
  <pre><code>std::cout &lt;&lt; (-10 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-9 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-8 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-7 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-6 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-5 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-4 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-3 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-2 &gt;&gt; 1) &lt;&lt; std::endl;
  std::cout &lt;&lt; (-1 &gt;&gt; 1) &lt;&lt; std::endl;
  </code></pre>
  
  <p>The result is:</p>
  
  <pre><code>-5
  -5
  -4
  -4
  -3
  -3
  -2
  -2
  -1
  -1
  </code></pre>
  
  <p>But why? </p>
  
  <p><code>-1</code> is <code>1111 1111</code> (for 1 byte), <code>-1 &gt;&gt;</code> 1 must be : <code>1011 1111</code> and it is not <code>-1</code> or <code>0</code>! (sign-bit is not shifted, I know)</p>
  
  <p>Can someone explain to me how this works?</p>