Ceci dit à implémenter, ça tient sur une petite fonction:
char *en_binaire(int nombre)
{
int i,j;
char *binaire=(char *)malloc(sizeof(char)*33);
binaire[32]='\0'; //Caractère de fin de chaîne
i=0; //Compteur de décalage de bits
j=31; //Emplacement dans la chaine "binaire", on part de la fin
while(i<32)
{
/* On déplace chaque bit de vers la droite i puis on regarde si
le premier bit après le décalage est égal à 1. Le décalage
permet de déplacer chaque bit à la première position
au fur et à mesure de la boucle */
if ( (nombre >> i) & 1)
{
binaire[j]=1;
}
else{
binaire[j]=0;
}
i++;
j--;
}
return binaire; //Penser à libérer l'allocation de binaire un jour :-)
}
Je l'ai pas testé, mais l'intention y est :-)
J'ai pris une longueur de 33 pour la chaine. Avec gcc (donc peut être à changer en fonction des compilateurs), un int fait 32 bits, j'ai fait + 1 pour le caractère de fin de chaine.