FONCTION DECIMAL BINAIRE (SIMPLE)

acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 - 13 oct. 2007 à 14:15
cs_zazar13 Messages postés 1 Date d'inscription mercredi 6 septembre 2006 Statut Membre Dernière intervention 13 octobre 2007 - 13 oct. 2007 à 16:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44371-fonction-decimal-binaire-simple

cs_zazar13 Messages postés 1 Date d'inscription mercredi 6 septembre 2006 Statut Membre Dernière intervention 13 octobre 2007
13 oct. 2007 à 16:34
merci pour le conseil ;).
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
13 oct. 2007 à 14:26
ou plus simplement

#include <stdio.h>
#include stdlib.h>

void bintab(char n, char *buf) {
int i 8, mask 1<<7;
memset(buf,0,sizeof *buf * 8);
while(i--) {
buf[i] = mask & n;
mask <<= 1;
}
}
int main() {
int nb, buf[8], i;
printf("le nbr: ");
if (scanf("%d",nb)) {
while(getchar() != '\n');
}
else {
printf("erreur\n");
return 1;
}
bintab(nb,buf);
for (i = 0; i < 8; i++) {
printf("%d ",buf[i]);
}
printf("\n");
return 0;
}
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
13 oct. 2007 à 14:15
salut

voila comment je l'aurais écrit

#include <stdio.h>
#include <stdlib.h>

void decbin(int nbr, int*reste) {
int i;
int b = 8;

memset(reste,0,sizeof *reste * 8);

if (za == 0) {
return ;
}
while (b--) {
reste[b] = nbr % 2;
nbr /= 2;
b--;
}
}

int main() {
int nbr[8],i,za;
printf("entrer le nombre decimal : \n");
scanf("%d",&za);

decbin(za,nbr);
printf("\n en binaire le nombre = ");
for (i = 0; i < 8;i++) {
printf("%d",nbr[i]);
}
printf("\n\n");

system("PAUSE");
return 0;
}
Rejoignez-nous