begin process at 2010 03 16 12:49:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Conversion d'entier en base 2^32 vers base 10


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Conversion d'entier en base 2^32 vers base 10

vendredi 22 août 2008 à 14:32:32 | Conversion d'entier en base 2^32 vers base 10

le_duche

Membre Club
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.

vendredi 22 août 2008 à 14:53:35 | Re : Conversion d'entier en base 2^32 vers base 10

SebLinck

Salut,

En base 2^32 ?
En base 2 ou 32 ?
 passage de la base 2 à 10 :


int octet1_bin1 = (reponse.alt[0] & 0x1)  >> 0;
int octet1_bin2 = (reponse.alt[0] & 0x2)  >> 1;
int octet1_bin3 = (reponse.alt[0] & 0x4)  >> 2;
int octet1_bin4 = (reponse.alt[0] & 0x8)  >> 3;
int octet1_bin5 = (reponse.alt[0] & 0x16) >> 4;
int octet1_bin6 = (reponse.alt[0] & 0x32) >> 5;
int octet1_bin7 = (reponse.alt[0] & 0x64) >> 6;
int octet1_bin8 = (reponse.alt[0] & 0x128)>> 7;

int octet2_bin1 = (reponse.alt[1] & 0x1)  >> 0;
int octet2_bin2 = (reponse.alt[1] & 0x2)  >> 1;
int octet2_bin3 = (reponse.alt[1] & 0x4)  >> 2;
int octet2_bin4 = (reponse.alt[1] & 0x8)  >> 3;
int octet2_bin5 = (reponse.alt[1] & 0x16) >> 4;
int octet2_bin6 = (reponse.alt[1] & 0x32) >> 5;
int octet2_bin7 = (reponse.alt[1] & 0x64) >> 6;
int octet2_bin8 = (reponse.alt[1] & 0x128)>> 8;

int Altitude;
Altitude = octet1_bin8  * 32768;
Altitude += octet1_bin7 * 16384;
Altitude += octet1_bin6 * 8192;
Altitude += octet1_bin5 * 4096;
Altitude += octet1_bin4 * 2048;
Altitude += octet1_bin3 * 1024;
Altitude += octet1_bin2 * 512;
Altitude += octet1_bin1 * 256;

Altitude += octet2_bin8 * 128;
Altitude += octet2_bin7 * 64;
Altitude += octet2_bin6 * 32;
Altitude += octet2_bin5 * 16;
Altitude += octet2_bin4 * 8;
Altitude += octet2_bin3 * 4;
Altitude += octet2_bin2 * 2;
Altitude += octet2_bin1 * 1;

pour un passage de base 32 vers 10, il te faut remplacer les puissance de 2
par les puissances de 32...

Cordialement,
Sébastien.
vendredi 22 août 2008 à 15:03:38 | Re : Conversion d'entier en base 2^32 vers base 10

le_duche

Membre Club
J'ai bien écrit de base 2^32 à base 10...
Donc pour faire clair: de base 4294967296 à base 10.

Duchon.

vendredi 22 août 2008 à 17:01:51 | Re : Conversion d'entier en base 2^32 vers base 10

SebLinck

RE,

Alors tu changes les puissance en base 2 par les puissance en base 2^32..

Cordialement,
Sébastien.
vendredi 22 août 2008 à 17:01:53 | Re : Conversion d'entier en base 2^32 vers base 10

SebLinck

RE,

Alors tu changes les puissance en base 2 par les puissance en base 2^32..

Cordialement,
Sébastien.
vendredi 22 août 2008 à 17:51:51 | Re : Conversion d'entier en base 2^32 vers base 10

le_duche

Membre Club
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...

Duchon.

dimanche 24 août 2008 à 11:21:45 | Re : Conversion d'entier en base 2^32 vers base 10

SebLinck

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.


Sébastien.
dimanche 24 août 2008 à 13:19:42 | Re : Conversion d'entier en base 2^32 vers base 10

le_duche

Membre Club

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.

dimanche 24 août 2008 à 16:34:27 | Re : Conversion d'entier en base 2^32 vers base 10

SebLinck

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)

Cordialement,
Sébastien.
dimanche 31 août 2008 à 11:50:01 | Re : Conversion d'entier en base 2^32 vers base 10

mezaya

"Lenteur de LISP ? les fonction sont compilées maintenant, souvent bien plus efficace que du C++ !" On dit que j'ai rien vu!! sinon pout ton probleme il existe une lib de grand nombre GMP http://gmplib.org/

1 2

Cette discussion est classée dans : base, conversion, convertir, entier, calcul


Répondre à ce message

Sujets en rapport avec ce message

Conversion chaine en entier base 16 [ par Cako19 ] Bonjour, Je souhaiterais convertir une chaine en entier base 16, tout comme le fait la fonction atoi en base 10. Ex: j'ai la chaine "0x013036" et je s Conversion de chaine en entier [ par JMGR ] Comment peut - on convertir une chaine qui contient par exemple "25" en entier ?Exemple :char texte[256]="25";int nombre;nombre = texte; //Erreur...< CONVERSION EBCDIC PACKED en ASCII [ par Michel76 ] Bonjour,J'ai trouvé un script C++ sur le site pour convertir de l'EBCDIC en ASCII, mais malheureusement pour moi je dois convertir des fichiers EBCDIC conversion de date [ par CHENRY ] En VC++ 6.0 avec les MFC.Pour convertir une date en chaine, j'ai bien trouvé la propriété MaChaine = MaDate.Format(0, LANG_USER_DEFAULT)mais pour conv convertir un jpeg en bmp sur vc++ [ par phemar ] j'ai déjà tout le code pour lire puis travailler sur les bitmap et je dois maintenant l'étendre pour les jpeg. je sais qu'on peut réaliser cette conve Aide Conversion !!! [ par vincfred ] slt jai un programme a faire pour mon licé et je comprend rien le prof ma doné ke le fichier de déclaration jespere ke kelkun pouré maider voici le fi Conversion de caracteres en nombre [ par Pspice ] Slt a tous!J'ai une question sur le langage c++,j'ai un tableau qui contient des caracteres : ex : 4,1,2,5,+,1La ds l'ex je voudrai convertir les cara conversion de la partie fractionnaire en base n [ par Alucard ] J'ai vu qu'il y avait beaucoup d'algorithme de la partie entière (int) d'un nombre en n'importe quel base mais je voulais savoir si quelqu'un avait un conversion des données EXCEL vers une base de données ACCESS [ par mallouka ] salut,j'ai besoin d'un logiciel ou un code source permettant de convertir une page XLS afin d'alimenter unedatabase ACCESS.s'il vous plaît ,j'ai besoi Convertir un entier en String [ par maxinfos ] Bonjour,je voudrais savoir s'il était possible d'obtenir un code me permettant de convertir un entier (int) en String, ce afin de pouvoir nommer un fi


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales