Conversion décimal binaire en 32 bits en C
pauline1602
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
le père -
le père -
Bonjour,
j'ai un petit soucis pour un exercice que je n'arrive pas a résoudre malgrés mes nombreux essais. Je n'arrive pas a créer un programme qui fasse la conversion d'un nombre decimal à un nombre binaire en 32 bits. c'est le 32 bits qui me dérrange sinon jai un programme. mais si vous pouvez m'aider voici mon sujet :
Ecrivez un programme qui affiche la conversion binaire d'un nombre entier (compris entre 0 et 4 294 967 295 et donc codé sur 32 bits) donné par l'utilisateur. Attention, vous devrez donner la conversion sur 32 bits, c'est à dire que les 0 inutiles devant le nombre binaire seront quand même donnés.
en tout cas MERCI d'avance :)
j'ai un petit soucis pour un exercice que je n'arrive pas a résoudre malgrés mes nombreux essais. Je n'arrive pas a créer un programme qui fasse la conversion d'un nombre decimal à un nombre binaire en 32 bits. c'est le 32 bits qui me dérrange sinon jai un programme. mais si vous pouvez m'aider voici mon sujet :
Ecrivez un programme qui affiche la conversion binaire d'un nombre entier (compris entre 0 et 4 294 967 295 et donc codé sur 32 bits) donné par l'utilisateur. Attention, vous devrez donner la conversion sur 32 bits, c'est à dire que les 0 inutiles devant le nombre binaire seront quand même donnés.
en tout cas MERCI d'avance :)
A voir également:
- Excel conversion binaire 32 bits
- 32 bits - Guide
- Power iso 32 bit - Télécharger - Gravure
- Winrar 64 bits - Télécharger - Compression & Décompression
- Télécharger windows 7 32 bits usb - Télécharger - Systèmes d'exploitation
- Clé de produit windows 7 professionnel 32 bits gratuit - Guide
4 réponses
Le for que tu as vu en cours n'est qu'un exemple, l'instruction for est bien plus générale et plus puissante que ça.
Dans sa définition, il n'est pas question de comparaison ni d'incrémentation - même si c'est la manière la plus classique de s'en servir.
Quant au ? : , c'est un opérateur qui signifie : si ce qui est avant ? est vrai ( c'est à dire différent de 0) la valeur est celle comprise entre ? et : , sinon c'est celle indiquée après le :
Ou, si tu préfères :
a = condition ? sivvrai : sifaux;
si condition est vraie, a recevra la valeur sivrai, sinon a recevra la valeur sifaux.
Ça permet d'écrire de manière abrégée un test simple.
Quand on mélange tout ça, on arrive vite à quelque chose d'illisible et je crois que j'en ai donné un exemple.
Pour te donner une version que tu devrais pouvoir comprendre, si tu as une petite idée de ce qu'est un nombre binaire :
(je n'ai pas essayé)
Dans sa définition, il n'est pas question de comparaison ni d'incrémentation - même si c'est la manière la plus classique de s'en servir.
Quant au ? : , c'est un opérateur qui signifie : si ce qui est avant ? est vrai ( c'est à dire différent de 0) la valeur est celle comprise entre ? et : , sinon c'est celle indiquée après le :
Ou, si tu préfères :
a = condition ? sivvrai : sifaux;
si condition est vraie, a recevra la valeur sivrai, sinon a recevra la valeur sifaux.
Ça permet d'écrire de manière abrégée un test simple.
Quand on mélange tout ça, on arrive vite à quelque chose d'illisible et je crois que j'en ai donné un exemple.
Pour te donner une version que tu devrais pouvoir comprendre, si tu as une petite idée de ce qu'est un nombre binaire :
(je n'ai pas essayé)
unsigned x=128954; unsigned msk = 0x80000000; int k; for (k = 0; k<32; k++) { if (x & msk) printf('1'); else printf('0'); msk = msk >>1; }
Bonjour
Si ton C utilise des entiers sur 32 bits ou plus, il n'y a aucun calcul à faire, puisque les nombres sont codés en binaire à l'intérieur des variables. Il y a juste à tester les bits.
Pour le fun :
Réfléchis à comment ce programme marche (car il marche) , pour le cas où ton prof te le demanderait ^^
Si ton C utilise des entiers sur 32 bits ou plus, il n'y a aucun calcul à faire, puisque les nombres sont codés en binaire à l'intérieur des variables. Il y a juste à tester les bits.
Pour le fun :
unsigned x=128954; unsigned msk; for (msk=0x80000000; msk; msk>>=1) printf("%c",(x & msk)?'1':'0');
Réfléchis à comment ce programme marche (car il marche) , pour le cas où ton prof te le demanderait ^^
Je verrais plutôt : printf("1"); else printf("0");