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 -
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 !
#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
-
salut
tu peux commencer à regarder :
fonction récursives
modulo
ca devrai pas mal t'aider.
naga -
Ouah...
Faut continuer lol.
Avant de coder, as-tu compris l'algorithme que tu souhaites implémenter ? -
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 !
-
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 (>>)-
-
-
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
-
-
#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();
} -
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)