Conversion d'un nombre en binaire en langage Python

Fermé
Maxou - Modifié le 17 nov. 2022 à 15:19
 PierrotLeFou - 16 nov. 2022 à 22:34

Bonjour à tous,

Je suis en seconde au lycée et fais mes premiers pas en python et en connais que quelques instructions. Le professeur nous donné le travail suivant, mais je ne m'en sors pas, et je crois que ça va être la même chose pour pas mal de copains de classe. Il s'agit de convertir un nombre saisi sur la console en nombre binaire et d'afficher le code binaire. Voici la description de algorithme ci-dessous :

Algorithme :

  • demander à l’utilisateur d’entrer un nombre entier positif ;
  • récupérer cet entier dans une variable nbr ;
  • diviser nbr par 2 tant que nbr reste différent de 0 ;
  • ajouter le reste au début d’une chaîne de caractères appelée code ;
  • donner à nbr la nouvelle valeur nbr:2 ;
  • afficher la chaîne code

J'ai écrit ce début de code mais ça ne marche pas :

nbr = int(input ("Tapez votre entrée"))
while nbr != 0 :
     nbr // 2
     reste = nbr % 2
     code = str(reste)

Quelqu'un peut-il m'aider ? La programmation m'intéresse beaucoup mais pour l'instant, le professeur ne nous a pas donné assez de cours malheureusement. Ça ira mieux dans quelques semaines j'espère.

Merci d'avance.

A voir également:

2 réponses

jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 16 nov. 2022 à 18:44

Bonjour,

nbr//2 effectue l'opération, mais ne faisant rien du résultat il n'est pas conservé.

code=str(reste) tu affectes à code la valeur binaire du reste, mais tu ne conserves pas les valeurs antérieures

voir :

nbr = int(input ("Tapez votre entrée "))
code=''
while nbr !=0 :
     reste = nbr%2
     code = str(reste)+code
     nbr = nbr//2
print(code)

ps : pour la coloration syntaxique du code utiliser l'icone Code et le langage, Python


0
PierrotLeFou
16 nov. 2022 à 22:34

Est-ce toi ou le prof qui a donné ou décidé l'algorithme? Regardes ce que jee pee a fait.
Il va d'abord chercher le reste, puis il place le nouveau reste à la "gauche" du précédent.
Si tu veux comprendre, imagine qu'on veut le faire en décimal. Je prend le nombre 2145
Je prend d'abord le reste 5 de la division par 10, le quotient est 214
214 % 10 = 4, je l'ajoute: 45, et le quotient est 21
etc.

0