le_duche
Messages postés159Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention26 février 2009
-
22 août 2008 à 14:32
le_duche
Messages postés159Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention26 février 2009
-
31 août 2008 à 12:54
Bonjour !
Je chercher je cherche, mais je ne trouve pas d'idée.
Dans le cadre de l'implémentation d'une classe de grands entiers, je souhaite pouvoir convertir un nombre exprimé en base 2^32 vers la base 10 (pour l'affichage). Cependant je ne sais pas comment procéder. Etant donné la taille des nombres les méthodes habituelles de conversion de bases ne peuvent être utilisées.
J'ai pensé convertir mes termes a*(2^32)^k séparément selon les indices k et ensuite additionner les résultats.
J'ai commencé ma conversion par le calcul de (a*(2^32)^k)%10 = ((a%10)*(2^32%10)^k)%10
Cependant, après ce premier calcul je ne vois pas comment manipuler ce qui reste lorsque k est relativement grand...
Duchon.
le_duche
Messages postés159Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention26 février 2009 22 août 2008 à 17:51
T'es gentil, mais pour info mon processeur gère pas les entiers de 256 Mo
Le problème vient bien du fait que je travaille avec des entiers pouvant aller jusqu'à 2^16 bits, et que les calculs standards ne sont pas possibles...
SebLinck
Messages postés212Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention23 juin 2011 24 août 2008 à 11:21
Salut,
Si je ne me trompe pas, si ton entier est codé en base 2^32,
il est toujours codé sur 32 bit ( 4 octets) pour un processeur 32 bits.
Pour moi ça ne change rien puisque tu as une représentation de tes entiers
dans la mémoire de l'ordinateur.
Mais si tu n'arrive pas a effectuer les calcul que tu souhaites,
comme la conversion en base 10 utilises un langage de plus
haut niveau comme le langage LISP.
le_duche
Messages postés159Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention26 février 2009 24 août 2008 à 13:19
Et comment tu demandes au processeur de calculer (2^32)^128 quand t'arrives au bit 32*128 de mon nombre ???
Non mais franchement, t'as compris pourquoi il y a un problème avec les grands nombres au moins ?
Et t'as déjà vu la lenteur de lisp ? Pas très efficace pour la cryptographie !
Duchon.
SebLinck
Messages postés212Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention23 juin 2011 24 août 2008 à 16:34
Re,
Lenteur de LISP ?
les fonction sont compilées maintenant, souvent bien plus efficace que du C++ !
Sinon oui j'ai compris le problème des grand nombre, c'est pour ça qu'on travail sur
leur représentation.Et puis qui dit cryptographie, dit mathématique, dit matlab, scilab voir lisp...
(Pour info je viens de tester des manipulation de nombre de la taille de ceux que tu manipule en LISP)