Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1176 connectés 

  FORUM HardWare.fr
  Programmation

  programme pour transformer un entier en binaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme pour transformer un entier en binaire

n°75619
peemousse
Posté le 26-11-2001 à 15:52:47  profilanswer
 

Salut tout le monde, j'ai un travail pour l'ecole ou je dois transformer un entier saisi au clavier en binaire....mais comme je debute je ne sais pas trop par ou et comment commencer si vous pouviez me donner un coup de main ca serait sympa...
 
A+

mood
Publicité
Posté le 26-11-2001 à 15:52:47  profilanswer
 

n°75622
El_gringo
Posté le 26-11-2001 à 15:54:25  profilanswer
 

en quel langage !?
en plus, ça c plutot un truc mathématique qu'un truc de prog...
tu sais le faire mathématiquement !?

n°75627
Gonzoide
Les cochons... dans l'espâââce
Posté le 26-11-2001 à 15:56:11  profilanswer
 

C'ets pas dur, faut diviser par 2 et prendre le reste. Si par exemple tu prends 53 :
 
53 / 2 = 26 reste 1
26 / 2 = 13 reste 0
13 / 2 = 6  reste 1
6  / 2 = 3  reste 0
3  / 2 = 1  reste 1
(on s'arrete la)
 
PS : C'est un mauvais exemple, vu que ca fait 10101 dans les deux sens, mais t'as saisi le principe ...
 
ensuite, tu reprends les restes en commencant par celui du bas, soit 10101 ... et c'est tout :)

 

[edtdd]--Message édité par Gonzoide--[/edtdd]

n°75634
peemousse
Posté le 26-11-2001 à 16:00:39  profilanswer
 

Excusez moi.....c'est en C
 
 
//merci Gonzoide

n°75637
mogi
Posté le 26-11-2001 à 16:04:58  profilanswer
 

facile :)
 
on peut toujours donner l'algo générale
 
pour la partie entière -> divisions successives
pour la partie fractionnaire -> multiplications successives
 
11.8125 = 1011.1101
 
11 / 2 = 5 reste 1
5 / 2 = 2 reste 1
2 / 2 = 1 reste 0
1 / 2 = 0 reste 1
 
partie entière = 1011
 
.8125 * 2 = 1.625 on garde le 1
.625 * 2 = 1.25 on garde le 1
.25 * 2 = 0.5 on garde le 0
.5 * 2 = 1.0 on garde le 1
 
partie fractionnaire = 1101
 
Mogi.

n°75638
mogi
Posté le 26-11-2001 à 16:06:13  profilanswer
 

Gonzoide a écrit a écrit :

C'ets pas dur, faut diviser par 2 et prendre le reste. Si par exemple tu prends 53 :
 
snip...
 




 
trop rapide Gonzoide ;)

n°75641
Gonzoide
Les cochons... dans l'espâââce
Posté le 26-11-2001 à 16:08:06  profilanswer
 

mogi : et pourtant, ca date :)

n°75643
chrisbk
-
Posté le 26-11-2001 à 16:10:51  profilanswer
 

int entier;
 char tab[33];
 int i;
 scanf("%d",&entier);
 
 
 tab[32]=0;
 
 for (i=31;i>=0;i--)
 {
  if (entier & (1<<i))
   tab[31-i]='1';
  else
   tab[31-i]='0';
 }
 
 printf(tab);
 
 
Soit je suis con soit vous vous compliquer la vie :D

n°75648
Gonzoide
Les cochons... dans l'espâââce
Posté le 26-11-2001 à 16:13:27  profilanswer
 

Chris : ce qu'on a decrit c'est la methode propre, facilement comprehensible (peemousse nous dit qu'il est pas trop top), etnon dependante d'un langage. Mais c'est clair que si je devais l'implementer en C je ferais comme toi ;)

n°75649
chrisbk
-
Posté le 26-11-2001 à 16:18:58  profilanswer
 

Gonzoide a écrit a écrit :

Chris : ce qu'on a decrit c'est la methode propre, facilement comprehensible (peemousse nous dit qu'il est pas trop top), etnon dependante d'un langage. Mais c'est clair que si je devais l'implementer en C je ferais comme toi ;)  




 
vi...m'enfin quand on sait que ls PC bosse en binaire, n'est il pas logique (voir meme astucieux) d'utiliser ce fait ?
 
Sinon peemouse si t'as pas saisi ce que je fais :
 
ton PC travaille en binaire. par exemple 7 sera stocker sous la forme :
 
00000000000000000000000000000111 (ce qui est ce que l'on cherche finalement)
 
 
29 "0" + 3 "1"
Soit un total de 32bit (d'ou le 32 de ma boucle)
 
ce que l'on va faire c tester chaque bit l'un apres l'autre pour savoir si il est sur 0 ou sur 1
 
c'est le if (entier & (1<<i))  
 
en plus propre ca serait :
 
if ((entier & (1<<i)) != 0)
 
le (1<<i) ca veut dire "un decaler de i bit vers la gauche)
 
par exemple :
 
1<<0 donnera :
00000(...)1
 
1<<3 donnera :
00000(...)1000
 
ok ?
 
donc on utilise ce chiffre pour faire un ET logique avec notre entier. le ET va s'appliquer sur chaque bit
 
pour memoire
 
0 ET 0 = 0
1 ET 0 = 0
0 ET 1 = 0
1 ET 1 = 1
 
donc si apres notre ET le resultat est different de 0 cela veut dire que le i eme bit est sur 1, sinon sur 0
 
(si ca te semble tjs confu soit tu dis ou et je me relance dans une nouvelle explication soit tu utilise la methode mathematique decrite par les autres ;) )

mood
Publicité
Posté le 26-11-2001 à 16:18:58  profilanswer
 

n°75653
peemousse
Posté le 26-11-2001 à 16:24:40  profilanswer
 

//wow !!! je pensais que mon post serai aussi bien suivi...;sympa e tout cas...
 
bon, j'ai à peu pres compris ta methode chrisbk, mais tu utilises des tableaux et comme on les a pas vu encore j'ai pas trop le droit de le faire donc je pense que je vais utiliser la methode dite mathématique...qui m'est plus familiere on va dire
 
merci a tous

n°75654
chrisbk
-
Posté le 26-11-2001 à 16:26:22  profilanswer
 

peemousse a écrit a écrit :

//wow !!! je pensais que mon post serai aussi bien suivi...;sympa e tout cas...
 
bon, j'ai à peu pres compris ta methode chrisbk, mais tu utilises des tableaux et comme on les a pas vu encore j'ai pas trop le droit de le faire donc je pense que je vais utiliser la methode dite mathématique...qui m'est plus familiere on va dire
 
merci a tous  




 
bah tu peux t'eviter l'utilisation ds tableaux en mettant un printf direct dans la boucle

n°75655
Gonzoide
Les cochons... dans l'espâââce
Posté le 26-11-2001 à 16:29:45  profilanswer
 

ou alors tu concatenes au fur et a mesure un char * avec "0" ou "1" ...

n°75660
chrisbk
-
Posté le 26-11-2001 à 16:36:26  profilanswer
 

Gonzoide a écrit a écrit :

ou alors tu concatenes au fur et a mesure un char * avec "0" ou "1" ...  




 
si il a pas le droit au tableau, les char * fodrait ptet mieux eviter ;)

n°75662
El_gringo
Posté le 26-11-2001 à 16:38:06  profilanswer
 

Mais son prof va complètement halluciner, y va le prendre pour un génie... le type, il à même pas appris à faire des tableau et y sors à son prof un truc qui bosse sur les bits comme ça !?
perso, moi j'y croirais pas !  :non:

n°75663
chrisbk
-
Posté le 26-11-2001 à 16:39:53  profilanswer
 

bah si il a compris la methode, hein ?

n°75667
Gonzoide
Les cochons... dans l'espâââce
Posté le 26-11-2001 à 16:49:07  profilanswer
 

chrisbk a écrit a écrit :

 
si il a pas le droit au tableau, les char * fodrait ptet mieux eviter ;)  




 
snif ... du C sans char*, c'est plus vraiment du C :sweat:

n°75677
peemousse
Posté le 26-11-2001 à 17:07:09  profilanswer
 

he he.je suis de l'avis de EL GRINGO mais c sympa kan meme..je vais utiliser la methode "mathematique" dans une boucle et HOp on va tester de toute facon il faut bien que j'essaye plusieurs choses
 
 
merci à tous


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  programme pour transformer un entier en binaire

 

Sujets relatifs
[c] Comment transfomer une chaine de caractere en entier?[c] tableau d'entier en chaine de caratères ???
question con sur les programme de PHPURGENT => Programme d'installation Visual Basic
[visual basic 6] Comment faire une pause dans le programme ?Programme style Motherboard Monitor
OpenGL : premier programme qui merde ;(je cherche quelq'un pour m'aider pour mon programme en c
[c/c++] Lancer un programme a partir d'un programme en CEncore un tite question pour une soustraction en binaire...
Plus de sujets relatifs à : programme pour transformer un entier en binaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR