Forum Programmation.python probleme python

Posté par . Licence CC by-sa
Tags : aucun
-2
7
nov.
2017

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 (page perso) . Évalué à 1 (+0/-0).

    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 . Évalué à 2 (+1/-0). Dernière modification le 07/11/17 à 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 (page perso) . Évalué à 1 (+0/-0).

        "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 . Évalué à 1 (+0/-0).

          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 . Évalué à 6 (+4/-0).

    mon premier devoir […] sans utiliser de fonction telle que bin, c'est a dire en creant mon propre algorithme, etant un peu perdu

    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 :

    si utilisateur saisi en base 8
    alors
     faire conversion base8-base2
    finsi
    si utilisateur saisi en base 16
    alors
     faire conversion base16-base2
    finsi

    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

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.