Multiplication 32bits*32 bits, résultat dans 2 32 bits

magodu22 Messages postés 2 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 28 novembre 2005 - 28 nov. 2005 à 12:44
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 - 5 déc. 2005 à 16:14
je simule un microprocesseur qui fonctionne en assembleur en langage C.
dans ce projet, je dois executer une multiplication de 2 mots de 32
bits, et plutot que de caser le resultat dans un mot de 64 bits, ce qui
serait plus simple, on nous demande de le caser dans 2 mots de 32 bits.
Si vous avez une idée pour effectuer cette multiplication, meme bit a
bit, cela pourrait m'aider. Pour l'instant mon idée serait de faire des
additions successives (une multiplication n'est en fait que plusieurs
addition ...), mais c'est un peu du bricolage je trouve. merci d'avance.

1 réponse

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
5 déc. 2005 à 16:14
Salut :)



Tu pourrais pas stocker temporairement le résultat dans un entier de 64
bits, puis le convertir ensuite en deux entiers de 32 bits ????



__int64 res = a * b;



long low = res & 0x00000000FFFFFFFF;

long high = (res & 0xFFFFFFFF00000000) >> 32; // Le "32" est à vérifier :p



PS : Je sais pas si ca fonctionne avec les entiers 64 bits, j'ai jamais essayé.... :p



@+++
0
Rejoignez-nous