Bonjour je viens de debuter en informatique et mon premier devoir est de convertir un nombre de base 8 ou 16 (en fonction de la demande de l'utilisateur) en binaire sans utiliser de fonction telle que bin, c'est a dire en creant mon propre algorithme, etant un peu perdu j'aimerais bien que l'on m'aide en me proposant un debut de code ou une demarche a suivre.
# Différentes approches possibles
Posté par cho7 (site web personnel) . Évalué à 1.
Et bien il suffit déjà de lire les caractères de droite à gauche pour repasser le nombre en base 10 puis ensuite à coups de division/modulos tu le repasse en base 2
[^] # Re: Différentes approches possibles
Posté par Marco . Évalué à 2. Dernière modification le 07 novembre 2017 à 15:38.
Y a pas plus simple ? Pourquoi repasser en base 10 ? 8 et 16 sont des puissances de deux on alors une conversion simple de base 8 -> 2 et vice versa
Il faut remplacer chaque chiffre de base octal par son équivalent en base binaire :
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
exemple :
71 en base octale donne 111 001
64 en base octale donne 110 100
Pour de la base 2 à 8 il suffit de lire 3 par 3
Cette ne méthode marche uniquement car 8 et 16 sont des puissance de deux
[^] # Re: Différentes approches possibles
Posté par cho7 (site web personnel) . Évalué à 1.
"Y a pas plus simple ? Pourquoi repasser en base 10 ?"
Parce que je n'ai pas beaucoup réfléchi à ce problème qui n'est pas le mien, et parce que je suis le spécialiste pour trouver rapidement des solutions non optimisées mais qui solutionnent :-)
[^] # Re: Différentes approches possibles
Posté par Marco . Évalué à 1.
Juste :), d'ailleurs tu as bien indiqué qu'il y a plusieurs façon possibles.
D'ailleurs je pense que c'est le but de l'exo pour les élèves de voir quelles sont les méthodes possibles
# lire le cours
Posté par NeoX . Évalué à 6.
et bien va lire ton cours,
avant de faire un programme
on fait l'algorithme, c'est à dire decouper ton probleme en probleme plus simple, eventuellement ecrit en francais dans un premier temps, pour decrire comment tu ferais ta conversion.
ex :
puis definir tes fonctions base16-base2 et base8-base2
bon pour ca, il faut avoir compris comment tu fais ca deja sur le papier ou dans ta tete
base8 : des chiffres de 0 à 7 (0,1,2,3,4,5,6,7)
base16 : des caracteres de 0 à f (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
base2 : des chiffres de 0 à 1
en base 16 : 10 = 1x16 + 0x1, 11 = 1x16 +1x1
en base 8 : 10 = 1x8 +0x1, 11 = 1x8 + 1x1
tout comme en base 10 : 10 = 1x10 + 0x1, 11 = 1x10 + 1x1
tu peux reconvertir via la base10 mais c'est couteux
tu peux convertir directement dans la base2 et c'est le but de ton exercice
et python ou pas il faut deja savoir le faire dans ta tete (sur une feuille de papier), pour ensuite seulement le "traduire" en python
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.