Decimal to binary
Fermé
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
-
6 juin 2013 à 13:22
dx3d Messages postés 68 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 juillet 2017 - 10 juin 2013 à 16:26
dx3d Messages postés 68 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 juillet 2017 - 10 juin 2013 à 16:26
A voir également:
- Decimal to binary
- Qwerty to azerty - Guide
- Casio fx-92 affichage décimal ✓ - Forum calculatrices
- Openjdk platform binary minecraft ✓ - Forum Minecraft
- 1 to ✓ - Forum Windows
- Convertir heure en décimal excel ✓ - Forum Excel
5 réponses
dualife_
Messages postés
153
Date d'inscription
dimanche 31 mars 2013
Statut
Membre
Dernière intervention
21 novembre 2020
45
6 juin 2013 à 13:32
6 juin 2013 à 13:32
Salut,
pourquoi tu utilise la fonction pow?
pire sur une variable non initialisée (i) donc le résulta n'est pas prédictible
et demande toi d'abord comment tu convertirai un nombre en binaire sur papier
ensuite traduit ce que ton code fait sur papier
tu devrai voir la difference
pourquoi tu utilise la fonction pow?
pire sur une variable non initialisée (i) donc le résulta n'est pas prédictible
et demande toi d'abord comment tu convertirai un nombre en binaire sur papier
ensuite traduit ce que ton code fait sur papier
tu devrai voir la difference
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
6 juin 2013 à 13:42
6 juin 2013 à 13:42
Je converti par soustraction, en gros si je prend 536 sur papier et que j'essaie de la convertir j'ai les puissances de deux suivantes
1024 > 536 => 0
512 < 536 => 536 - 512 = 24 => 1
256 =>0
128 =>0
64 =>0
32 =>0
16 < 24 => 24-16 = 8 => 1
8 => 1
4 => 0
2 => 0
1 => 0
résultat = 1000011000; ce qui est un résultat correcte de 536 ( base 10 ) en binaire.
j'ai essayé de faire mon code sous le même principe, donc en prenant les puissances de 2 jusqu'à la puissance de 16 ( qui est dans les alentour de 65000 ) je demande à l'utilisateur de choisir un chiffre entre 0 et 65000 puis tant que la puissance de 2 est supérieur au chiffre choisi on met un 0 dans la case du tableau et dans le cas où la puissance de 2 est inférieur on met un 1 et on fait une soustraction du chiffre n choisi - la dite puissance de 2.
1024 > 536 => 0
512 < 536 => 536 - 512 = 24 => 1
256 =>0
128 =>0
64 =>0
32 =>0
16 < 24 => 24-16 = 8 => 1
8 => 1
4 => 0
2 => 0
1 => 0
résultat = 1000011000; ce qui est un résultat correcte de 536 ( base 10 ) en binaire.
j'ai essayé de faire mon code sous le même principe, donc en prenant les puissances de 2 jusqu'à la puissance de 16 ( qui est dans les alentour de 65000 ) je demande à l'utilisateur de choisir un chiffre entre 0 et 65000 puis tant que la puissance de 2 est supérieur au chiffre choisi on met un 0 dans la case du tableau et dans le cas où la puissance de 2 est inférieur on met un 1 et on fait une soustraction du chiffre n choisi - la dite puissance de 2.
dualife_
Messages postés
153
Date d'inscription
dimanche 31 mars 2013
Statut
Membre
Dernière intervention
21 novembre 2020
45
6 juin 2013 à 13:58
6 juin 2013 à 13:58
le principe est bon
mais tes variables ne sont pas initialisées.
que vaux i et x dans x=pow(2, i); ??
mais tes variables ne sont pas initialisées.
que vaux i et x dans x=pow(2, i); ??
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
6 juin 2013 à 14:12
6 juin 2013 à 14:12
J'ai mis le x à l'intérieur du for, maintenant pour i qui commence a 16 et qui ce réduit jusqu'à 0 on aura x qui aura les valeurs des 2^i.
Mais pour l'initalisation de ces deux variables est ce que c'est obligatoire ? Vu que je leur affecte des valeurs au départ dois je tout de même leur donné une valeur initiale ?
Aussi je crois que mon problème réside dans mon tableau, ce dernier à 16 cases mais lors du printf, seul 10 apparaissent et la valeur ne change pas peut importe la valeur décimale n ! :/
Mais pour l'initalisation de ces deux variables est ce que c'est obligatoire ? Vu que je leur affecte des valeurs au départ dois je tout de même leur donné une valeur initiale ?
Aussi je crois que mon problème réside dans mon tableau, ce dernier à 16 cases mais lors du printf, seul 10 apparaissent et la valeur ne change pas peut importe la valeur décimale n ! :/
dualife_
Messages postés
153
Date d'inscription
dimanche 31 mars 2013
Statut
Membre
Dernière intervention
21 novembre 2020
45
Modifié par dualife_ le 6/06/2013 à 15:23
Modifié par dualife_ le 6/06/2013 à 15:23
demande toi pourquoi ça fonctionne et pas ton code
indice: stockage et index
int main() { int n; scanf("%d", &n); for (int i = 16; i != 0; --i) { if (n >= pow(2.0, i)) { n -= pow(2.0, i); printf("1"); } printf("0"); } return 0; }
indice: stockage et index
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
10 juin 2013 à 16:26
10 juin 2013 à 16:26
Merci beaucoup j'ai réussi à résoudre mon problème du coup ! :p