Decimal --> binaire et inversement, prog en C

waterminator Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
.N Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

pour un projet j'ai besoin d'une fonction qui converti un nombre decimal en binaire et un binaire en decimal.
le programme doit retourner un int *
mon probleme est que je n'arrive absolument pas a comprendre comment on passe d'une base a une autre...
pouvez vous m'aider?

A voir également:

1 réponse

.N Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   570
 
Hum, sache tout d'abord que physiquement parlant, dans un ordinateur, tous les nombres sont en binaires (enfin, je serais surpris d'en trouver un avec autre chose que des bits)... toute information est un ou plusieurs octets, eux-même constitués de bits. Donc il n'existe pas de «nombre décimal» à proprement parler. On peut créer des représentations virtuelles de nombres décimales, dont la plus utilisée est sans doute celle sous forme de chaîne de caractères avec les correspondances numériques du code ASCII.
Soit l'intervalle de '0' à '9', c'est-à-dire de 48 à 58 (ou de 0x30 à 0x3A).

Tu dis que ton programme doit retourner un pointeur sur entier (int*). Je ne vois donc pas quel est l'intérêt de créer une représentation binaire virtuelle d'un nombre. Ceci dit, peut-être voulais-tu dire (char*). Dans ce cas, tu peux utiliser la fonction (non standard certes) :

char *  itoa ( int value, char * str, int base );

par exemple :
char *pTemp = (char*) malloc((sizeof(int) * 8 + 1) * sizeof(char));
pTemp = itoa ( 12345, pTemp, 2);
printf("%d vaut en binaire %s\n", 12345, pTemp);
0