begin process at 2012 05 28 22:54:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

[C ++] Conversion Decimal-Binaire aidez moi s.v.p


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C ++] Conversion Decimal-Binaire aidez moi s.v.p

mercredi 17 décembre 2008 à 15:19:59 | [C ++] Conversion Decimal-Binaire aidez moi s.v.p

Belfegorvegeta

Bonjour, je voudrais pouvoir convertir un nombre entier entré par l'utilisateur en binaire, mais je dois afficher ce résultat chaine de caractère, le problème que je rencontre, c'est comment affecter une variable à une chaine de caractère ?

Code:

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

int main(int argc, char *argv[])
{
int entier, quotient, resultant;
char reste[3], binaire[20];

printf("Saisissez un entier");
scanf("%d", &entier);
do
{
resultant = quotient % 2;
quotient = quotient / 2;
strcpy(binaire, "");
strcpy(reste, resultant); /* Comment mettre une variable dans une chaîne de caractères ? */
strcat binaire, reste;

}
while(reste != 0);
ltoa(binaire, binaire, 10);
printf("Correspondance binaire = %s", binaire);

system("PAUSE");
return 0;
}



Merci!
mercredi 17 décembre 2008 à 15:44:55 | Re : [C ++] Conversion Decimal-Binaire aidez moi s.v.p

fregolo52

Membre Club
salut

on dirait un exercice qui date d'un an . Cette question a été posée par quelqu'un de la promo de l'an dernier.

Mais si on garde ta méthode : c'est plutot ce genre de chose

// on vide la chaine
memset(binaire, 0, 20);
do
{
resultant = quotient % 2;
quotient = quotient / 2;
sprintf(binaire, "%s%d", binaire, resultant); /* Comment mettre une variable dans une chaîne de caractères ? */

}
while(quotient != 0);

// sinon vu que travaille en binaire tu peux jouer avec les décalage
l'opération >> 1 revient à décalé d'un bit vers la droite, donc diviser par 2

do
{

resultant = quotient & 1;
quotient = quotient >> 1;
sprintf(binaire, "%s%d", binaire, resultant); /* Comment mettre une variable dans une chaîne de caractères ? */

}
while(quotient != 0);

dans ces 2 exemples, tu as ta chaine a l'envers. essaie _strrev (si tu es sous windows)
mercredi 17 décembre 2008 à 16:45:25 | Re : [C ++] Conversion Decimal-Binaire aidez moi s.v.p

Belfegorvegeta

J'ai modifier le code, seulement à l'exécution le programme se fige après avoir entrer la valeur, je ne trouve pas d'où cela vient.

nouveau code:


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

int main()
{
    int entier, quotient, resultant;
    char reste[3], binaire[20];
    
    printf("Saisissez un entier\n");
    scanf("%d", &entier); /* L'utilisateur entre le nombre à convertir */
    do
    {
          resultant = quotient % 2; /* Obtention du reste */
          quotient = quotient / 2; /* Obtention du numérateur suivant */
          strcpy(binaire, ""); /* Déclaration chaîne vide afin de ne pas avoir de problèmes pour la concaténation */
          ltoa(resultant, reste, 10); /* Conversion du reste en chaine */
          strcat(binaire, reste); /* Concaténation d'une partie de la chaîne bianaire avec le nouveau reste */
          
    }
    while (reste != 0);
    strrev(binaire);
    printf("Correspondance binaire = %s", binaire);

      system("PAUSE");
      return 0;
}
mercredi 17 décembre 2008 à 17:23:21 | Re : [C ++] Conversion Decimal-Binaire aidez moi s.v.p

fregolo52

Membre Club
Réponse acceptée !
avant meme de lire ton code, le programme se fige => boucle infinie. Bon voyons ton erreur.

reste est une chaine de caracètre, que tu compares à un entier (dans le while), c'est ca ton pb.

Dans ton programme, tu sortirais quand reste == 0; Ca ne va pas, tu va sortir à la 1ere ou 2e itération. Il faut que tu sorte quand quotien sera égal à 0. Comme dans mon code d'exemple.
mercredi 17 décembre 2008 à 22:01:38 | Re : [C ++] Conversion Decimal-Binaire aidez moi s.v.p

Belfegorvegeta

Merci fregolo52, j'ai réglé mon problème et le code est fonctionnel:


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

int main()
{
    int quotient, resultant;
    char reste[5], binaire[20];
    
    printf("Saisissez un entier\n");
    scanf("%d", &quotient); /* L'utilisateur entre le nombre à convertir */
    strcpy(binaire, ""); /* Déclaration chaîne vide afin de ne pas avoir de problèmes pour la concaténation */
    do
    {
          resultant = quotient % 2; /* Obtention du reste */
          quotient = quotient / 2; /* Obtention du numérateur suivant */          
          ltoa(resultant, reste, 10); /* Conversion du reste en chaine */
          strcat(binaire, reste); /* Concaténation d'une partie de la chaîne bianaire avec le nouveau reste */
          
    }
    while(quotient != 0);
    strrev(binaire);
    printf("Correspondance binaire = %s\n", binaire);

      system("PAUSE");
      return 0;
}
    
    
    
    


Cette discussion est classée dans : reste, binaire, include, entier, quotient


Répondre à ce message

Sujets en rapport avec ce message

Affichier un entier en binaire avec printf [ par Muner ] Bonjour a tous,je voudrais savoir comment afficher avec printf un entier (int) en binaire .MERCI MUNER Manipulation de grand tableaux d'entier [ par oistrakh ] Bonjour,Pour acceler un programme VBA, j'ai introduit une dll dans laquelle notammentje cherche a remplir des tableaux tres grand ( j'aimerais atteind Extraire entier d'une chaine [ par Vylco ] Bonjour, voila j'ai un exo a faire en algo mais je vois pas comment le faire. la consigne: soit une chaine de caractère. Ecrivez une fonction qui rec conversion de chaine en entier [ par bechwiyech ] Bonsoir j'ai ecris un petit code pour convertir un nombre en un entier. mais ca marche pas , pourriez vous m'aidez. #include #include #include stati concaténation plusieurs int [ par johan3240 ] Bonjour tout le monde, j'ai un petit code en C à faire sujet : en gros c'est u programme qui utilise la division successive. à la fin de mes divisions probléme rsa [ par thesum4113 ] // Ce programme ne fonctionne qu'avec des entiers naturels// demande les données à l'utilisateur et convertit les chaînes de caractères en entiersvar detection des petites cercles dans une image avec opencv [ par swito ] salut je travaille sur un projet qui consiste à détecter les petites cercles manométriques dans les images , j'ai utilisé la fonction cvHoughCircles probleme de debug [ par elhajjajireda ] si le vous plait j'ai placé un breakpoint sur ma fonction principale linge22 ou s'est écrit l'instruction " Image2.Load(argv[2]); sur Windows et avec Conversion binaire d'un nombre saisi au clavier [ par Debord10 ] Bjr! J'ai un petit souci,je voudrai convertir un nombre en binaire,mais ça marche pas;je sais quoi faire! Voilà ce que j'aifais : #include #include us detection sur video avec opencv [ par altyok ] bonjour, je cherche quelqu'un qui pourrait m'aider à résoudre un problème sur opencv j'ai fait un programme qui lit les frams de ma webcam ensuite j'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales