Voila ce que j'avais fait mais je ne l'ai pas testé. Je peux te donner la version vérifiée prochainement...
#include <stdio.h>
#include <conio.h>
int puissance(int a, int b){
int i, ret;
if (b==0)
return(1);
if (b==1)
return(a);
i=2;
ret=a*a;
while(i<b){
ret=ret*a;
i++;
}
return(ret);
}
void main(){
int entree, compt, calc, result, mode, result, puiss, i, reste;
while(1){
compt=-1;
entree=-1;
printf("Quelle convertion voulez vous utiliser:\n1: nombre decimal vers binaire \n2: nombre binaire vers decimal\n0: quitter");
scanf("%d",&mode);
while(entree<=0){
printf("entrer le nombre positif a convertir: ");
scanf("%d",&entree);
clrscr();
}
calc=entree;
if(mode==1){
result=-1;
while(result==-1){
compt++;
puiss=puissance(2,compt)
if(calc-puiss < puiss){
result=1;
calc=calc-puiss;
}
}
for(i=compt-1; i>=0, i--){
puiss=puissace(2, i);
if(calc-puiss >= 0){
result=result*10+1;
calc=calc-puiss;
}
else
result=result*10;
}
printf("le nombre decimal %d equivaut au nombre binaire %d\npresser une touche pour continuer ...",entree,result);
getch();
}
if(mode==2){
result=0;
i=0;
while(calc>1){
reste=calc%10;
calc=calc/10;
if(reste==1)
result=result+puissance(2,i);
i++;
}
result=result+puissance(2,i);
printf("le nombre binaire %d equivaut au nombre decimal %d\npresser une touche pour continuer ...",entree,result);
getch();
}
if(mode==0){
return();
clrscr();
}
}