Cijferend vermenigvuldigen

Weet je nog? Cijfer-rekenen op de lagere school? Misschien had je nooit gedacht dat je dit nog ooit nodig had, maar nu zit je hier 😉.

Cijferend vermenigvuldigen


Cijferend vermenigvuldigen gearceerd

Voor zij die het zich niet meer helemaal herinneren is hier een snelle opfrissing. De 123 heet de vermenigvuldiger en de 45 het het vermenigvuldigtal. Het protocol:

  1. begin met het meest linkse karakter van het vermenigvuldigtal (rood)
  2. vermenigvuldig dit, van links naar rechts, met ieder karakter van de de vermendigvuldiger
  3. noteer het partiële produkt
  4. schuif 1 karakter naar rechts in het vermenigvuldigtal (blauw)
  5. herhaal stap 2.
  6. noteer het partiële produkt, maar begin 1 karakter meer naar links
  7. herhaal de stappen 4- 6 tot het vermenigvuldigtal helemaal afgehandeld is
  8. Tel, tenslotte, alle partiële produkten op

Waarom moet dit opgefrist worden?

Het doel hiervan is dat er extra functionaliteit toegevoegd dient te worden aan de ALU: de vermenigvuldiging. Eerder in deze labo’s is er gekeken hoe een optelling uitgevoerd kan worden in hardware. Voor de vermenigvuldiging wordt een gelijkaardig pad gevolgd. Een mogelijke manier om dit te implementeren verschilt namelijk niet veel van de de manuele manier in het voorbeeld hierboven.

  1. begin met de meest linkse bit van het vermenigvuldigtal (rood)
  2. vermenigvuldig dit, van links naar rechts, met iedere bit van de de vermendigvuldiger
  3. noteer het partiële produkt
  4. schuif 1 karakter naar rechts in het vermenigvuldigtal (blauw)
  5. herhaal stap 2.
  6. noteer het partiële produkt, maar begin 1 karakter meer naar links (ook geel en groen )
  7. herhaal de stappen 4- 6 tot het vermenigvuldigtal helemaal afgehandeld is
  8. Tel, tenslotte, alle partiële produkten op

Cijferend vermenigvuldigen

Enkele opmerkingen die gemaakt kunnen worden:

  • merk op dat het recept hetzelfde blijft voor binair als met decimaal
  • wat is het effect van de breedte van de inputs op de breedte van produkt?
    • een n-bit getal plus een n-bit getal wordt een n+1-bit getal
    • een n-bit getal maal een n-bit getal wordt een … 2n-bit getal
  • wat is het aantal verschillende uitkomsten dat een partieel produkt kan hebben?