title: Multiplication of mantissa in floating point arithmetic
body: <p>With regards to the mantissa (re <a href="https://en.wikibooks.org/wiki/Microprocessor_Design/FPU" rel="nofollow noreferrer">this guide on floating point arithmetic</a>), how do you actually multiply two mantissa's together?</p>
  
  <p>Assume IEEE 754 single precision floating point representation.</p>
  
  <p>Lets say one number has a mantissa of <code>1.5</code>, which would be encoded as <code>0b10000000000000000000000</code> (which is <code>4194304</code> in decimal). The second number has a mantissa of <code>1.125</code>, which would be encoded as <code>0b00100000000000000000000</code> (which is <code>1048576</code> in decimal).</p>
  
  <p><code>1.5 x 1.125 = 1.6875</code>.</p>
  
  <p><code>1.6875</code> is encoded as <code>0b10110000000000000000000</code> (which is <code>5767168</code> in decimal). However <code>4194304 * 1048576</code> does not equal <code>5767168</code>...</p>
  
  <p>How does mantissa multiplication work such that <code>4194304</code> (1.5) multiplied by <code>1048576</code> (1.125), yields <code>5767168</code> (1.6875)?</p>
  
  <p>That is, how do you multiply the encoded mantissas?</p>
  
  <p>I.e. how does the hardware use the encoded mantissas stored in memory to get the new value?</p>
  
  <p><br></p>
  
  <hr>
  
  <p>From <a href="https://en.wikibooks.org/wiki/Microprocessor_Design/FPU" rel="nofollow noreferrer">the guide</a>, multiplication of floating point numbers can be acheived as follows. I am stuck on step 2.</p>
  
  <blockquote>
    <ol>
    <li>Separate out the mantissa from the exponent</li>
    <li>Multiply (or divide) the mantissa parts together</li>
    <li>Add (or subtract) the exponents together</li>
    <li>Combine the two results into the new value</li>
    <li>Normalize the result value (optional)</li>
    </ol>
  </blockquote>