title: Why does right shifting negative numbers in C bring 1 on the left-most bits?
body: <p>The book "C The Complete Reference" by Herbert Schildt says that "(In the case of a signed, negative integer, a right shift will cause a 1 to be brought in so that the sign bit is preserved.)"</p>
  
  <p>What's the point of preserving the sign bit?</p>
  
  <p>Moreover, I think that the book is referring to the case when negative numbers are represented using a sign bit and not using <a href="http://en.wikipedia.org/wiki/Two%27s_complement" rel="noreferrer">two's complement</a>. But still even in that case the reasoning doesn't seem to make any sense.</p>