Binaire

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
Configuration: Windows Vista
Internet Explorer 7.0

6 réponses

  1. 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
    1. moi non plus desolé
      peut etre sur un site pour le langage C
      0
      1. #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
        1. 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
      2. #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
        1. merci bcp, et svp encore une fois aidez moi pr la 2eme methode
          0
      3. #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
        1. merci bcp pr votre mercibcp bcp bcp
          0