[Exercice]Convertisseur Décimal-Binaire en C
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

[Exercice]Convertisseur Décimal-Binaire en C



  1. #1
    invite4f00587c

    Post [Exercice]Convertisseur Décimal-Binaire en C


    ------

    Bonsoir, je suis étudiant en 1ère Technologie de l'informatique (Belgique, Namur)

    Je suis en plein Blocus pendant ces vacances afin de bien préparer mes examens. Mais je rencontre un petit soucis.
    C'est pourquoi je viens demander votre aide.

    Merci d'avance,

    J'ai réaliser ce code :

    Une erreur persiste dans mes résultats. Si je rentre la valeur 15 j'ai en réponse 111 ...

    Code:
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
        int nbrDec=0,nbrBin=0,cpt=0,reste=0,quotient=0;
        printf("Entrez un nombre entier positif non nul : ");
        fflush(stdin);
        scanf("%d",&nbrDec);
        quotient=nbrDec;
        while(quotient>1)
        {
            reste=quotient%2;
            quotient=quotient/2;
            nbrBin+=reste*pow(10,cpt);
            cpt++;
        }
        printf("Nombre binaire = %d",nbrBin);
    }

    -----

  2. #2
    invite2d7144a7

    Re : [Exercice]Convertisseur Décimal-Binaire en C

    Bonjour,

    Déjà, ce n'est pas la bonne méthode :

    étant donné qu'il s'agit seulement d'afficher la valeur en base 2, il faut créer une chaîne de caractères, et pas chercher à créer un entier constitué de 0 et 1 (d'ailleurs, tu ne pourrais pas représenter toutes les valeurs possibles pour l'entrée, comprends-tu pourquoi ?).

    Donc, reprends à 0 - et évite ce genre d'horreur qu'est l'utilisation de pow, tu n'en as pas besoin.

  3. #3
    invite4f00587c

    Re : [Exercice]Convertisseur Décimal-Binaire en C

    Solution trouvée ... je ne sais pas si c'est la meilleure mais ça me semble très bien.

    Code:
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
       int Decimal;
       int Binaire = 2;
       scanf("%d", &Decimal);
       while (Binaire <= Decimal)
        Binaire *= 2;
       Binaire /= 2;
       while (Binaire != 0)
       {
          if (Binaire <= Decimal)
          {
             printf("1");
             Decimal -= Binaire;
          }
          else
            printf("0");
            Binaire /= 2;
       }
    }

  4. #4
    Jack
    Modérateur

    Re : [Exercice]Convertisseur Décimal-Binaire en C

    Sinon, il y a cette solution, sous forme de fonction:
    Code:
    #include <stdio.h>
            
    void affBin(int d){
        if (d > 1){
            affBin(d/2);
            printf("%d", d%2);
        } else 
            printf("0b1");
    }
    
    int main(void)
    {
       int dec;
       puts("entrez un nombre");
       scanf("%d", &dec);
       affBin(dec);
       return 0;
    }
    l'affichage commence par 0b pour ne pas confondre avec un affichage dans une autre base, comme 0x pour l'hexadédimal.

    A+

  5. A voir en vidéo sur Futura
  6. #5
    invite4492c379

    Re : [Exercice]Convertisseur Décimal-Binaire en C

    Hello Jack,

    tu l'as placé la conversion récursive

    Heu ... petit problème pour affBin(0) qui affichera "0b1".

  7. #6
    Jack
    Modérateur

    Re : [Exercice]Convertisseur Décimal-Binaire en C

    Citation Envoyé par photon57 Voir le message
    Hello Jack,

    tu l'as placé la conversion récursive
    bin oui, c'est affectif . J'ai appris l'info quasiment en autodidacte avec la doc du basic et un bouquin sur le pascal (hé oui, pas d'internet à l'époque). Sur un ORIC et un APPLE IIe. Ca a été ma 1ère fonction récursive perso (soupir ...).

    Heu ... petit problème pour affBin(0) qui affichera "0b1".
    Le problème, c'est que ma capacité mémoire et de calcul évolue à l'inverse de celle de nos PC
    Pour rectifier le tir (et sans 0b en début d'affichage)
    Code:
    void affBin(int d){
        if (d != 0){
            if (d>1){
                affBin(d/2);
            }
            printf("%d", d%2);        
        } else printf("0");
    }
    A+

Discussions similaires

  1. Compteur ou convertisseur binaire decimal
    Par inviteece77dac dans le forum Électronique
    Réponses: 5
    Dernier message: 26/05/2010, 13h28
  2. Conversion décimal -> binaire
    Par invite2ee4bcad dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 10/05/2010, 20h50
  3. Conversion de binaire à décimal
    Par invitee50a1bfa dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 09/02/2008, 23h11
  4. Programmer convertisseur décimal => binaire avec tableur
    Par invite600e8377 dans le forum TPE / TIPE et autres travaux
    Réponses: 6
    Dernier message: 19/03/2007, 23h13
  5. Compteur binaire/decimal?
    Par invitea250c65c dans le forum Électronique
    Réponses: 10
    Dernier message: 14/07/2006, 11h37