title: Why MSB's are discarded during 2's complement multiplication?
body: <p>I have a trouble with understanding why we discard MSB when we do multiplication of 2's complements numbers.</p>
  
  <p>Let's take <code>101</code> (decimal: -3) and <code>011</code> (decimal: 3) for example. Algorithm goes like this: first we double length of our numbers, then we do usual multiplication as we did in school with decimals, then we take (doubled length)*2 = 6 least significant bits.</p>
  
  <ol>
  <li><p>Double lengths:</p>
  
  <pre><code>101 -&gt; 111101
  011 -&gt; 000011
  </code></pre></li>
  <li><p>Do multiplication:
  <code>111101 * 000011 = 10110111</code> (decimal: -73)</p></li>
  </ol>
  
  <p>As we see, this result is wrong.</p>
  
  <ol start="3">
  <li>Take 6 least significant bits (drop 2 most significant bits).
  <code>10110111 -&gt; 110111</code> (decimal: -9)</li>
  </ol>
  
  <p>And so result became magically right. How can this be explained? I understand that MSB is kind of special and the same rules I've used in school cannot be 100% suitable for 2's complements, but while I fully understand school rules of multiplication, I can't wrap my head around the last step of 2's complement multiplication (first two steps I understand).</p>