1/5 (7 avis)
Vue 31 302 fois - Téléchargée 1 429 fois
char* baseToBase(char* nombre, char* base_entree, char* base_sortie) { // On va passer par la représentation décimale pour faire la conversion int nombre_decimal=0; int i, j; int taillebase_entree = strlen(base_entree); printf("Taille de la base d'entree : %d\n", taillebase_entree); int taillebase_sortie = strlen(base_sortie); printf("Taille de la base de sortie : %d\n", taillebase_entree); int taille_nombre = strlen(nombre); // Conversion vers la base 10 for(i=0; i<taille_nombre; i++){ // Le chiffre est donné par la position du caractère dans la base int chiffre = strpos(base_entree, taillebase_entree, nombre[i]); //printf("Chiffre n %d : %d\n", i, chiffre); int expo = pow(taillebase_entree, taille_nombre-i-1); //printf("Exposant : %d\n", expo); nombre_decimal += chiffre * expo; } printf("Nombre en decimal : %d\n", nombre_decimal); i=0; char * nombre_final[MAX_CHIFFRES+1]; int quotient = nombre_decimal; // Le nombre est écrit de droite à gauche dans le tableau (à l'envers) // On arrangera ca plus tard do{ nombre_final[i++] = base_sortie[quotient % taillebase_sortie]; // On a fini ? if(quotient < taillebase_sortie) break; quotient = (int)(quotient / taillebase_sortie); if(i > MAX_CHIFFRES){ printf("Nombre trop grand..\n"); exit(3); } }while(1); printf("Nombre final (contient %d chiffres) : \n", i); // On remet le nombre a l'endroit while(i > 0){ i--; putchar(nombre_final[i]); } }
2 déc. 2008 à 17:37
25 avril 2008 à 11:27
14 avril 2008 à 16:40
13 avril 2008 à 13:16
11 nov. 2007 à 18:09
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.