Pour convertir un nombre en binaire !!!

mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
saluuuut! j'ai ecris un programme qui permet de convertir un nombre en binaire mais je suis complètement coincé je sais plus quoi faire aprés cela

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

main ()
{
int nbr,nbrbin,i,n;
;
printf("entrez le nombre a convertir : ");
scanf("%d",&nbr);

nbrbin=nbr/2 ;
nbr/2=(nbr/2)/2;
(nbr/2)/2=((nbr/2)/2)/2;
((nbr/2)/2)/2=(((nbr/2)/2)/2)/2;
(((nbr/2)/2)/2)/2=((((nbr/2)/2)/2)/2)/2;
((((nbr/2)/2)/2)/2)/2=(((((nbr/2)/2)/2)/2)/2)/2;
(((((nbr/2)/2)/2)/2)/2)/2=((((((nbr/2)/2)/2)/2)/2)/2)/2;
((((((nbr/2)/2)/2)/2)/2)/2)/2=(((((((nbr/2)/2)/2)/2)/2)/2)/2)/2;
(((((((nbr/2)/2)/2)/2)/2)/2)/2)/2=((((((((nbr/2)/2)/2)/2)/2)/2)/2)/2)/2;

printf("resulta est : %d" ,nbrbin,nbr);

getch ();

}

aidez moi svp qu'est ce qu je dois faire ??
merci d'avance !

7 réponses

  1. Utilisateur anonyme
     
    salut

    tu peux commencer à regarder :
    fonction récursives
    modulo

    ca devrai pas mal t'aider.

    naga
    1
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Ouah...
    Faut continuer lol.
    Avant de coder, as-tu compris l'algorithme que tu souhaites implémenter ?
    0
  3. mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
     
    ouii il faut faire un algo qui permet de convertir un nombre vers le binaire en langage c je suis débutante je connais pas tellement de fonctions pour bien améliorer mon programme c'est pour ça je demande l'aide !
    0
  4. Utilisateur anonyme
     
    Bonjour

    Avant même de te poser des questions sur l'algorithme et la récursion, commence par te demander ce que veut dire ta ligne :
    nbr/2=(nbr/2)/2; 

    car c'est une horreur absolue qui montre que tu n'as pas compris l'affectation ( le = ) en informatique.
    Tu calcules ce qu'il y a à droite du = et tu le mets dans la variable qu'il y a à gauche du = (Je sais, ça peut être autre chose qu'une simple variable mais ne brouillons pas les pistes).
    Mettre nbr/2 à gauche ne veut tout simplement rien dire, car nbr/2 n'est pas une variable. Il faut que tu commences par en être bien persuadé avant de réfléchir au reste.
    0
    1. mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
       
      ouiii :s je dirai que je suis débutante, vu le niveau de réflexion pourras tu me conseiller commeent je peux l'evoluer ? :)
      0
    2. Utilisateur anonyme
       
      Je n'ai aucun titre ni lien à te donner, mais il te faut un cours pour grands débutants.
      Tu n'as pas décidé de te mettre à écrire du C comme ça, tu as bien du avoir un support (cours scolaire ou tutoriel sur internet).
      Relis le début sans sauter par-dessus ce que tu ne comprends pas.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    https://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format
    Je trouve compliquer de raisonner sur des entier à afficher en décimal. Le décalage de bit pourrait t'aider aussi (>>)
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Oui, le décalage de bits est une solution astucieuse, avec test du bit "perdu" avant décalage. J'utiliserai <<, pour afficher les bits dans l'ordre :-)


      Dal
      0
    2. mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
       
      et comment je peux effectuer ça ?
      0
    3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Pour un entier de 0 à 255 contenu dans octet, avec un type unsigned char, et une variable pour contenir la retenue, tu peux utiliser l'opérateur bit à bit "ET" (&) pour déterminer si le bit le plus à gauche est un 1 ou un 0 :

          if ((octet & 0b10000000) == 0b10000000) /* 8ème bit à 1 ? */
              retenue = 1;
          else
              retenue = 0;


      Tu décales octet vers la gauche (<<) pour passer au bit suivant à afficher, et répètes jusqu'à épuisement de ton octet.


      Dal
      0
  7. malcomx2 Messages postés 8 Statut Membre
     
    #include<stdio.h>
    #include<conio.h>
    main ()
    {
    int c=1,d,a=0;
    printf("donnez la valeur en dicimal\n");
    scanf("%d",&d);
    if(d<2){
    printf("le binaire de la valeur est %d",d);}
    d=d*2;
    if(d>2){
    do
    {
    d=(d/2);
    a=a+(d%2);
    a=a*10;
    if(a==0){
    c=c*10;}
    }while(d/2 != 0);
    printf("le binaire de la valeur est %d",(a/10)*c);}
    getch();
    }
    0
  8. mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
     
    merci malcomx2 ton programme a fonctionner avec succès , vous pouvez ajouter des commentaires à chaque ligne pour bien comprendre ton programme car ya des choses que j'y arrive pas merciiiiiiiiiiiiii (y)
    -1
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      tu veux aussi qu'on te tape le rapport de l'exercice ?
      0
    2. mimizaa Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
       
      ?????
      0