à l'aide ya urgence
Résolu
Michel
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, je veux savoir comment de manière generale passer d'une base x en une base y en langage c
merci d'avance..
merci d'avance..
2 réponses
-
Ca n'a pas vraiment de sens en C., tout les nombres sont en fait manipulés en base 2. Ce qui varie c'est leur représentation, par exemple quand on l'affiche sur la sortie standard, le selecteur de printf décidera de la forme :
#include <stdio.h> int main (void) { int var = 42; printf("%d\n", var); printf("%x\n", var); return 0; }
Doit afficher :
42 2a
Si l'idée c'est de convertir une chaîne de caractères en un scalaire, alors un truc à base de sscanf peut faire l'affaire.
http://membres.multimania.fr/dancel/c/c60_10.htm
http://membres.multimania.fr/dancel/c/c60_40.htm -
On peut faire ça simplement, juste avec les fonctions de conversions itoa et strtol.
#include<stdlib.h> #include<stdio.h> #include<string.h> char* convertir(char* entier1, int base1, char* entier2, int base2) { return itoa(strtol(entier1, NULL, base1),entier2,base2); } int main() { char entier1[BUFSIZ], entier2[BUFSIZ]; // conversion de "123" de la base 5 à la base 7 --> "53" strcpy(entier1,"123"); convertir(entier1,5,entier2,7); printf("%s\n",entier2); return 0; }