2010-01-27 3 views
1

Dans la bibliothèque GMP ....Exécution binaire GMP

Comment l'exécution interne des opérations sur les entiers sera-t-elle effectuée? Que se passe-t-il en cas de multiplication, de division et d'autres opérations!? comme 6 = 0110,4 = 0100..et 6 + 4 = 0110 + 0100 .. comment contrôle-t-il les bits de débordement et d'autres choses?

+0

Pour les algorithmes internes, vous devriez jeter un oeil à: http://gmplib.org/manual/Algorithms.html#Algorithms – tur1ng

Répondre

0

La plupart des routines de précision multiple de base sont écrites en code d'assemblage et tirent parti des instructions CPU spécifiques.

Pour l'addition, l'instruction de base est "ADD-with-Carry". Cette instruction va ajouter le contenu de deux registres CPU et le bit de retenue, puis enregistre le résultat dans un registre et définit le bit de retenue s'il y a débordement. Pour ajouter deux nombres à précision multiple, le bit de retenue est effacé, puis le premier mot (généralement un C "unsigned int" ou "unsigned long") dans chaque valeur de précision multiple est ajouté, le résultat est enregistré et le bit de retenue est défini pour la prochaine boucle. Pour la multiplication, l'instruction de base "MULT" multiplie simplement deux registres et stocke la moitié supérieure du résultat dans un registre CPU et la moitié inférieure du résultat dans une autre unité centrale. registre.

Pour plus de détails sur la façon dont cela est réellement fait sur une CPU, vous devez rechercher le jeu d'instructions de la CPU.

Questions connexes