convertir de Base10 en Base2 et inversement
Nous avons vu comment passer de base 10 en base 2 et inversement. Nous allons maintenant coder les conversions décimal - binaire en python.
⚠️ Avant de déplier un paragraphe (titre en bleu), replier le précédent
Dans ce TP nous allons manipuler des nombres en base 10, qui seront de type int et des nombres codés en binaire, qui seront écrit comme des mots et seront de type str.
Pour décoder un nombre écrit en binaire :
Prenons un exemple : bin = "101"
- On va lire le mot lettre par lettre, en faisant un parcours de chaine (comme les parcours de listes).
- Pour chaque lettre, on devra la convertir en int, et la multiplier par une puissance de 2
- Et on va faire la somme des valeurs obtenues
Ce code vous sert d'exemple, mais vous allez devoir faire des modification pour qu'il puisse convertir n'importe quel nombre donnée en chaîne binaire en sa valeur en base 10.
Le code que vous devez complétez doit effectuer les opération suivante :
il commence par afficher le nombre en binaire (une chaine bin prédéfinie par le correcteur automatique).
Il va falloir ici faire 2 initialisations avant la boucle.
- D'une part, la variable somme, qui va nous servir à calculer la somme des termes.
- D'autre part la plus grande puissance de p, et pour cela il faudra se servir de len() qui permet de connaître le nombre de lettres dans le mot.
Ensuite on va itérer, sur les lettre du mot.
Dans la boucle :
- si la lettre est 1 on ajoute 2**p
- puis on diminue p (avant de passer à la lettre suivante)
Après la boucle on affiche le résultat.
Rapellons l'algorithme de conversion de base 10 vers la base 2 :
soit un nombre n en base 10 initialiser une variable chaine_bin à une chaine vide # on commence les divisions successives # au début le dividende est n # on arrête quand le dividende est nul tant que dividende non nul : reste = reste de la division par 2 ajouter reste au début de chaine_bin quotient = quotient de la division de dividende par 2 dividende prend la valeur de quotient fin tant que afficher le résultatCmplétez le code ci-dessous, en suivant l'algorithme des divisions successives donné ci-dessus.
AUTEURS : Jean-Louis THIROT