title: What is “2's Complement”?
body: <p>I'm in a computer systems course and have been <em>struggling</em>, in part, with <a href="http://en.wikipedia.org/wiki/Two%27s_complement" rel="noreferrer">Two's Complement</a>. I want to understand it but everything I've read hasn't brought the picture together for me. I've read the <a href="http://en.wikipedia.org/wiki/Two%27s_complement" rel="noreferrer">wikipedia article</a> and various other articles, including <a href="https://rads.stackoverflow.com/amzn/click/com/013034074X" rel="noreferrer" rel="nofollow noreferrer">my text book</a>.</p>
  
  <p>Hence, I wanted to start this <strong>community wiki</strong> post to define what Two's Complement is, how to use it and how it can affect numbers during operations like casts (from signed to unsigned and vice versa), bit-wise operations and bit-shift operations.</p>
  
  <p>What I'm hoping for is <strong>a clear and concise definition</strong> that is easily understood by a programmer.</p>