#include void convertir(void); /*fonction qui convertit la variable entier de type int en une chaîne de caractères notée chaine*/ int entier; /*pour l'entier à convertir*/ char chaine[33]; /*devra contenir l'écriture de entier sous forme d'une chaîne de caractères Pourquoi 17 : les entiers sont codés sur 16 bits, dont un pour le signe, auxquels il faut ajouter une case pour '\0'*/ void main() { printf("Indiquez un entier : "); scanf("%d",&entier); convertir(); printf("revoilà votre entier sous forme binaire : %s\n",chaine); } void convertir() { int n; char chaine_bis[16]; int indice=0,indice_bis=0; int unite; char unite_char; int i; if (entier<0) { chaine[0]='-'; indice=1; n=-entier; } else n=entier; /*on met dans chaine_bis le chiffre des unités, puis celui des dizaines etc*/ while (n>0) { unite=n%2; n=n/2; unite_char='0'+unite; chaine_bis[indice_bis]=unite_char; indice_bis++; } /*on inverse chaine_bis pour obtenir, dans chaine, l'écriture binaire*/ for (i=1;i<=indice_bis;i++) { chaine[indice]=chaine_bis[indice_bis-i]; indice++; } /*le cas de l'entier 0 n'a pas encore été traité*/ if (entier==0) { chaine[0]='0'; indice=1; } chaine[indice]='\0'; }