Binaire

Fermé
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 - 12 oct. 2008 à 14:16
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 - 12 oct. 2008 à 17:53
Bonjour,
j'ai 2 programmes en C,le premier:
Pour afficher sur 8 bits la représentation binaire d'un nombre entier positif par la division successive par 2.
le deuxieme:
Ex 1 par soustraction successive de puissance de 2 ca veut par la pondération.
Exp:
197=128+64+4+1
Donc 197 est (11000101)
svp aidez moi le plus vite possible svp

6 réponses

ronindom Messages postés 30 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 30 septembre 2009 1
12 oct. 2008 à 14:22
slt,
pour moi cé juste
0
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 26
12 oct. 2008 à 16:17
Bonjour,
j'ai 2 programmes en langage C,le premier:
Pour afficher sur 8 bits la représentation binaire d'un nombre entier positif par la division successive par 2.
Exp:
75/2=37; il reste 1
37/2=18; il reste 1
18/2= 9; il reste 0
9/2= 4 ; il reste 1
4/2= 2; il reste 0
2/2= 2; il reste 1
1/2= 0; il reste 1
on prend le reste en inverse ca donne (1101011)
pr completer 8 bits on ajoute zero a gauche et ca devient (01101011) mais si on a un grand nombre ca va prendre du temps c'est pour ca on a choisi la 2eme methode par la soustraction successive de puissance de 2 ca veut dire on suivant les ponderations de 2
Exp:
197=128+64+4+1
Donc 197 est (11000101)
je veux les solution par 2 methode svp dans le langage C
je sais comment faire mais je sais pas rediger dans le langage c svp repondez moi le plus vite possible
0
ronindom Messages postés 30 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 30 septembre 2009 1
12 oct. 2008 à 16:30
moi non plus desolé
peut etre sur un site pour le langage C
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
12 oct. 2008 à 16:31
#include <stdio.h>
int main (int argc,char **v)
{int nbr=atoi(v[1]);
int tab[7];
int num;
int i=0;
while (nbr!=0)
{num=nbr%2;
tab[i]=num;
printf("%d ",tab[i]);
nbr/=2;
printf("%d\n",nbr);
i++;
}
i--;
while(i>=0)
{printf("%d",tab[i]);
i--;
}
getchar();
return 1;
}
peut-etre cela pourra vous aider....
0
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 26
12 oct. 2008 à 16:59
merci pr ton aide
mais j'ia un probleme c ke si on a un grand nombre il faut dire a lutilisateur de faire la 2eme methode donc il faut un test et si le nombre est petit y'aura moins de 8bits il faut ajouter des zeros a gauche et je sais pa coment faire si vs pouvez maider encore une fois
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
12 oct. 2008 à 17:15
#include <stdio.h>
int main (int argc,char **v)
{int nbr=atoi(v[1]);
if (nbr>255) {printf ("Faire deuxieme methode");return(-1);};
int tab[7];
int num;
int i=0;
while (nbr!=0)
{num=nbr%2;
tab[i]=num;
printf("%d ",tab[i]);
nbr/=2;
printf("%d\n",nbr);
i++;
}
while (i<8)
{tab[i]=0;
i++;}
i--;
while(i>=0)
{printf("%d",tab[i]);
i--;
}
getchar();
return 1;
}
rajoute les quelques lignes, ca devrait marcher....
0
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 26
12 oct. 2008 à 17:19
merci bcp, et svp encore une fois aidez moi pr la 2eme methode
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
12 oct. 2008 à 17:42
#include <stdio.h>
int main (int argc,char **v)
{int nbr=atoi(v[1]);
int tab[7];
int i=0;
if((nbr-128)>=0) {tab[i]=1;nbr-=128;i++;} else {tab[i]=0;i++;};
if((nbr-64)>=0) {tab[i]=1;nbr-=64;i++;} else {tab[i]=0;i++;};
if((nbr-32)>=0) {tab[i]=1;nbr-=32;i++;} else {tab[i]=0;i++;};
if((nbr-16)>=0) {tab[i]=1;nbr-=16;i++;} else {tab[i]=0;i++;};
if((nbr-8)>=0) {tab[i]=1;nbr-=8;i++;} else {tab[i]=0;i++;};
if((nbr-4)>=0) {tab[i]=1;nbr-=4;i++;} else {tab[i]=0;i++;};
if((nbr-2)>=0) {tab[i]=1;nbr=-2;i++;} else {tab[i]=0;i++;};
tab[i]=nbr;
while(i>=0)
{printf("%d",tab[7-i]);
i--;
}
getchar();
return 1;
}
pour la deuxieme methode....
0
souzen Messages postés 41 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 5 janvier 2009 26
12 oct. 2008 à 17:53
merci bcp pr votre mercibcp bcp bcp
0