Originariamente inviato da alsa81
Non ho mai sentito parlare di moltiplicazione a precisione multipla, come funziona?
È molto semplice, te lo spiego a parole ... anzi con uno schema.
Immagina di dover moltiplicare 16 bit x 16 bit ma tu, ad esempio, hai solo istruzioni per fare 8 bit x 8 bit (con risultato su 16 bit).
codice:
8 bit 8 bit
/ | \
+-----+-----+
| A | B | x
+-----+-----+
+-----+-----+
| C | D | =
+-----+-----+
-------------------------------
+-----+-----+
| B x D | +
+-----+-----+
+-----+-----+
| A x D | +
+-----+-----+
+-----+-----+
| B x C | +
+-----+-----+
+-----+-----+
| A x C | =
+-----+-----+
-------------------------------
+-----+-----+-----+-----+
| Risultato su 32 bit |
+-----+-----+-----+-----+
Poi se tenere il risultato su 32 bit o solo su 16 bit (con eventualmente l'indicazione di overflow), dipende dalle specifiche necessità.
Insomma ... se non puoi fare moltiplicazioni tra operandi a N bit ma puoi farle con operandi di M bit (con M < N), allora puoi risolvere la moltiplicazione con una serie di moltiplicazioni tra le sottoparti degli operandi, con sommatoria finale dei semi-risultati.