IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

convertir un nombre binaire en ASCII


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut convertir un nombre binaire en ASCII
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #Entrées des données
     
    Cle= input("Veuillez rentrer votre  clé de cryptage ")
    PhraseCode = input("Veuillez rentrer votre code ")
    PhraseBin = ""
     
    #Répétition de la clé en fonction de la longueur de la phrase
     
    while len(Cle)<len(PhraseCode):
        Cle = Cle + Cle
     
    #Conversion en binaire
     
    for i in range (0,len(PhraseCode),1):
        xor = ""
        xor = int(PhraseCode[i]) ^int(Cle[i])
        PhraseBin = PhraseBin + str(xor)
     
    print (PhraseBin)
     
     
    nombreDec = 0
    nombreBin = ""
     
    # Récupération du décimal à convertir
    nombreBin = input( "Entrez un nombre binaire : " )
     
    #Convertir binaire vers Ascii
    Voila mon programme, je sais comment convertir un nombre binaire de 8 chiffres en code Ascii mais là je peux en avoir plus de 8 à convertir donc je me retrouve un peu perdu merci de m'aider ou de demander des précisions si ça ne l'est pas assez ce qui est surement le cas :/

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    PhraseBin et Cle peuvent difficilement être autre chose que des chaînes de caractères dans '0'..'9' (sinon vous ne pourriez pas appliquer xor = int(PhraseCode[i]) ^int(Cle[i])).
    A partir de là, difficile de comprendre ce que vous appelez "nombre binaire de 8 chiffres en code Ascii" et le code que vous avez posté n'éclaire pas vraiment.

    Si on s'amuse à lire votre code, vous partez d'une phrase et d'une clef:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> phrase = '123456'
    >>> clef = '234'
    et votre fonction de codage est un "xor" de chacun des entiers de la phrase avec l'entier correspondant de la clef. Pour ce faire, vous ajuster ("incorrectement") clef pour que sa longueur soit au moins égale à celle de phrase:
    >>> clef *= 1 + len(phrase) // len(clef)
    >>> clef
    '234234234'
    Si on écrit le codage en Python, on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> ''.join(str(int(x)^int(y)) for x, y in zip(phrase, clef))
    '317662'
    >>>
    Le résultat ('317662') est la phrase codée.
    Pour "décoder", il suffit de lui appliquer la même opération:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> phrase = '317662'
    >>> ''.join(str(int(x)^int(y)) for x, y in zip(phrase, clef))
    '123456'
    >>>
    Donc vous avez à écrire une fonction "coder" prenant phrase et clef en paramètre pour retourner la phrase codée ou décodée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> def coder(phrase, clef):
    ...     clef *= 1 + len(phrase) // len(clef)
    ...     return ''.join(str(int(x)^int(y)) for x, y in zip(phrase, clef))
    ...
    >>> coder('123456', '234')
    '317662'
    >>> coder('317662', '234')
    '123456'
    >>>
    Vous pouvez bien sûr écrire votre fonction "coder" avec des boucles "for"...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Algo pour convertir un nombre binaire en décimal
    Par Eole92 dans le forum Général Python
    Réponses: 12
    Dernier message: 13/11/2011, 12h32
  2. convertir un fichier binaire en ascii
    Par M_JOU79 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 11/06/2007, 23h48
  3. [NASM] Convertir en code ascii un nombre binaire
    Par noubigh dans le forum Assembleur
    Réponses: 1
    Dernier message: 29/06/2006, 11h52
  4. [LG] Convertir un nombre binaire en décimal
    Par minela28x dans le forum Langage
    Réponses: 5
    Dernier message: 05/01/2006, 10h33
  5. Convertir du binaire en Ascii
    Par brute dans le forum MFC
    Réponses: 2
    Dernier message: 28/12/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo