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 caractère en bits


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut Convertir un caractère en bits
    J'ai un caractère et je voudrai avoir sa représentation sous forme de 8 bits.

    Est - ce possible? Si oui comment faire?

    merci

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il y a une fonction dans la faq permettant de convertir un nombre entier en chaîne binaire: http://python.developpez.com/faq/?pa...#Base10ToBase2

    Avec cette fonction, le résultat que tu cherches pourrait être obtenu par: bin(ord(C)), C étant le caractère en question.

    Tu pourrais même compléter la chaîne binaire à gauche par d'éventuels zéros pour avoir toujours 8 chiffres: bin(ord(C)).zfill(8)

    Tyrtamos

  3. #3
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par piotrr Voir le message
    J'ai un caractère et je voudrai avoir sa représentation sous forme de 8 bits.

    Est - ce possible? Si oui comment faire?

    merci
    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
    char = 'M'
    print ''.join({
             'x':'0000'
            ,'0':'0000'
            ,'1':'0001'
            ,'2':'0010'
            ,'3':'0011'
            ,'4':'0100'
            ,'5':'0101'
            ,'6':'0110'
            ,'7':'0111'
            ,'8':'1000'
            ,'9':'1001'
            ,'A':'1010'
            ,'B':'1011'
            ,'C':'1100'
            ,'D':'1101'
            ,'E':'1110'
            ,'F':'1111'
            }[c.upper()] for c in hex(ord(char))[-2:])
    ou
    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
    char = 'M'
    print ''.join({
             '0':'0000'
            ,'1':'0001'
            ,'2':'0010'
            ,'3':'0011'
            ,'4':'0100'
            ,'5':'0101'
            ,'6':'0110'
            ,'7':'0111'
            ,'8':'1000'
            ,'9':'1001'
            ,'A':'1010'
            ,'B':'1011'
            ,'C':'1100'
            ,'D':'1101'
            ,'E':'1110'
            ,'F':'1111'
            }[c.upper()] for c in hex(ord(char)).split('x')[-1]).zfill(8)
    Notez que la ruse du 'x':'0000' ou le .zfill(0) ne sont nécessaires que pour les caractères de valeur 0 à 15, non imprimables.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    A priori je préférerais la première solution...

    n 'est ce pas carrément plus simple sachant que je veux que mes caractères soient codés sur 8 bits?

    merci

  5. #5
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    def chr2bin(c):
        return ''.join(reversed(['%d' % (ord(c) & 2**x > 0)
                                 for x in xrange(8)]))

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Et pourquoi ne pas se contenter de la première solution?

    merci

  7. #7
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Citation Envoyé par piotrr Voir le message
    Et pourquoi ne pas se contenter de la première solution?

    merci
    Parce que ça ne fait pas ce que tu as demandé. Tu as demandé de pouvoir convertir un caractère en forme binaire, 8 bits. La première solution converti un nombre en binaire, la seconde converti un chiffre hexadécimal en binaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/02/2007, 17h43
  2. Convertir en caractère multi-octets
    Par Stark333 dans le forum Langage
    Réponses: 2
    Dernier message: 19/05/2006, 11h32
  3. Convertir des caractères en code Morse
    Par programation dans le forum C++
    Réponses: 3
    Dernier message: 04/02/2006, 00h08
  4. Réponses: 6
    Dernier message: 06/03/2005, 19h47
  5. Comment convertir une image 24 bits en 8 bits ?
    Par James64 dans le forum Langage
    Réponses: 22
    Dernier message: 13/12/2004, 20h12

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