Convertisseur de texte en binaire ou héxadécimal


Accueil > Projets > Convertisseur de texte en binaire ou héxadécimal

Par Ponsson M., Willhelm T. en novembre 2019

Ce projet a été réalisé par des élèves en spécialité NSI du Lycée Louis Pasteur. Ils sont également les auteurs de ce compte rendu. Pour en savoir plus : Les projets en spécialité NSI

INTRODUCTION

Ce projet est un convertisseur de texte en une écriture binaire ou bien hexadécimal .

DESCRIPTION DU PROGRAMME

Le programme commence simplement par demander a l’utilisateur si il souhaite convertir son message en binaire ou en héxadécimal , pour cela nous avons utilisé une boucle en while :

  1.  def menu():
  2.     print("Souhaitez vous transcrire votre message en binaire ou hexadécimal ?")
  3.     print("1. binaire")
  4.     print("2. hexadécimal")
  5.     choix = 0
  6.     while choix==0:
  7.         choix = int(input("="))
  8.     if choix==1 :
  9.         fonction1()
  10.     elif choix==2 :
  11.         fonction2()
  12.     else :
  13.             menu()

Télécharger

Nous avons donc crée une fonction appelée menu que nous avons définie. A l’intérieur le programme demande à l’utilisateur en quel langage il souhaite convertir son message et il lui montre les deux possibilités ( ici 1.binaire et 2.hexadécimal ) . On crée une valeur appelé choix qui représente le choix de langage de l’utilisateur , tant que cette valeur est égal a 0 le programme va demander à l’utilisateur de lui affectée une valeur. Alors si la valeur et égal à 1 le programme exécutera la fonction1 , si la valeur est égal a 2 le programme exécutera la fonction2 et si l’utilisateur ne rentre pas une de ces deux valeurs le programme lui affiche a nouveau la fonction menu pour que l’utilisateur puisse relire les choix proposés rentrer une valeur reconnaissable par le programme.

Il faut ensuite demander à l’utilisateur le message qu’il souhaite convertir , mais il faut aussi découper son message caractères par caractères pour pouvoir ensuite convertir chaque caractères en son équivalent en binaire ou hexadécimal. Nous avons donc crée une fonction appelée split (divise en anglais) :

  1. def split(word):
  2.     return list(word)
  3. word = input(print("Faites-moi part de votre message secret :"))

Télécharger

La commande list découpe la valeur de word caractère par caractère et transforme le message on une liste de caractères. Et on demande à l’utilisateur de rentrer son message.
Après il ne nous reste plus qu’a définir les fonctions 1 et 2 :

  1. def fonction2():
  2.     print(hex(int.from_bytes(word.encode(), 'big'))[2:])
  3.  
  4. def fonction1():
  5.     d = word.encode()
  6.     for i in d:
  7.         print(bin(i)[2:])

Télécharger

La fonction1 sert à convertir le message de l’utilisateur en binaire. On crée une valeur nommée d dans laquelle on code le message de l’utilisateur grâce à la commande .encode qui va convertir la valeur de word (donc convertir chaque caractère de la liste) en son équivalent se trouvant dans UNICODE (un système qui classes tous les caractères de toutes les langues répertoriées et qui leurs attribue une un code ). On affiche ensuite chaque caractères de d converti avec la commande bin qui converti un code UNICODE en binaire , et on rajoute [2 :] pour supprimer deux caractères écrit qui sont normalement utilisés pour dire en quel langage s’affiche la valeur converti par bin.

La fonction2 sert à convertir message de l’utilisateur en hexadécimal . On a utilisé ici une autre manière qui fonctionne de même que pour celle de la fonction1 , on code le message de l’utilisateur avec .encode , on luit demande de convertir cela en hexadécimal avec la commande hex , on lui dit de bien commencer par la début avec ’big’, et encore une fois on supprime les deux premiers caractères codés grâce à [2 :] .

ETAT FINAL DU PROJET

  1. def fonction2():
  2.     print(hex(int.from_bytes(word.encode(), 'big'))[2:])
  3.  
  4. def fonction1():
  5.     d = word.encode()
  6.     for i in d:
  7.         print(bin(i)[2:])
  8.  
  9. def split(word):
  10.     return list(word)
  11. word = input(print("Faites-moi part de votre message secret :"))
  12.  
  13. def menu():
  14.     split(word)
  15.     print("Souhaitez vous transcrire votre message en binaire ou hexadécimal ?")
  16.     print("1. binaire")
  17.     print("2. hexadécimal")
  18.     choix = 0
  19.     while choix==0:
  20.         choix = int(input("="))
  21.     if choix==1 :
  22.         fonction1()
  23.     elif choix==2 :
  24.         fonction2()
  25.     else :
  26.             menu()
  27.          
  28. menu()

Télécharger

CONCLUSION

C’est un programme assez simple qui permet de comprendre comment utiliser des fonctions , ainsi que l’utilisation de certaines commandes utiles .

projet_1_version_final-2.zip (ZIP - 449 octets)
projet_1_version_final-2.zip

Mots-clés