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 :

Convertion binaire et nombre de bits


Sujet :

Python

  1. #1
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut Convertion binaire et nombre de bits
    bonjour,

    bin(5) affiche '0b101' sur 3 bits
    bin(127) affiche '0b1111111' sur 7 bits

    Comment obtenir (5) sur 7 bits avec les zéros devant ?
    Je veux réaliser un compteur binaire.

    @+

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Comme ça (Python 3):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bin(5)[2:].zfill(7)
    '0000101'
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Il y a aussi cette solution (formatage des chaînes de caractères), qui je pense est plus concise et sympa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> '{0:07b}'.format(5)
    '0000101'
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    ok, merci
    Les deux sont valables
    Ce que je veux aussi c'est modifier bit à bit avec des variables alphanumériques

    0000000 0 >> a+a+a+a+a+a+a
    0000001 1 >> a+a+a+a+a+a+b
    0000010 2 >> a+a+a+a+a+b+a
    0000011 3 >> a+a+a+a+a+b+b
    0000100 4 >> a+a+a+a+b+a+a
    ...

    0 induit un (a) et 1 induit un (b)

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Je n'ai pas compris s'il s'agit de modifier ou de représenter (0=>'a' et 1=>'b').

    S'il s'agit de représenter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xb = '00000101'
    print('+'.join([('b' if b=="1" else 'a') for b in xb])
    'a+a+a+a+a+b+a+b'
    On peut faire aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '+'.join(xb.replace('1', 'b').replace('0', 'a'))
    'a+a+a+a+a+b+a+b'
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Disons que moi aussi, je tâtonne.
    C'est pour réaliser des permutations de lettres dans des mots.
    Je cherche un moyen pour augmenter le nombre de lettres.
    Ci-dessous, le code avec 3 lettres :

    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
    l31='UIB'
    for p in range(26):
        for q in range(26):
            a2=cesar_mot(l31[0],p)
            a1=cesar_mot(l31[1],p)
            a0=cesar_mot(l31[2],p)
            b2=cesar_mot(l31[0],q)
            b1=cesar_mot(l31[1],q)
            b0=cesar_mot(l31[2],q)
            u0=b2+b1+b0
            u1=b2+b1+a0
            u2=b2+a1+b0
            u3=b2+a1+a0
            u4=a2+b1+b0
            u5=a2+b1+a0
            u6=a2+a1+b0
            u7=a2+a1+a0
            verif_dico(u0,q,q,q)
            verif_dico(u1,q,q,p)
            verif_dico(u2,q,p,q)
            verif_dico(u3,q,p,p)
            verif_dico(u4,p,q,q)
            verif_dico(u5,p,q,p)
            verif_dico(u6,p,p,q)
            verif_dico(u7,p,p,p)
    cesar_mot donne une lettre avec un pas p ou q
    verif_dico va vérifier si ce mot recomposé existe dans un dico
    u0,...,u7 est la recomposition du mot de 3 lettres ( 8 possibilités avec 2 bits , p et q )

    Avec 7 lettres (128 possibilités de recomposition), j'essaye de trouver le moyen de construire
    u0,...,u127 , en ne tapant pas toutes les lignes à la main.

    verif_dico va également tester les 128 mots recomposés pour chaque doublet p,q



    [Résolu]

    0 : S O C Z I B M
    1 : S O C Z I B E
    2 : S O C Z I T M
    3 : S O C Z I T E
    4 : S O C Z A B M
    5 : S O C Z A B E
    6 : S O C Z A T M
    7 : S O C Z A T E
    8 : S O C R I B M
    9 : S O C R I B E
    10 : S O C R I T M
    11 : S O C R I T E
    12 : S O C R A B M
    13 : S O C R A B E
    14 : S O C R A T M
    15 : S O C R A T E
    .. : ....................
    125 : K G U R A B E
    126 : K G U R A T M
    127 : K G U R A T E

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/01/2014, 22h36
  2. Nombre de bits à 1 dans un unsigned / index du 1er bit à 1
    Par Erickann dans le forum Assembleur
    Réponses: 2
    Dernier message: 20/11/2005, 22h51
  3. Manipulations binaires : savoir si un bit est "set"
    Par DiGiTAL_MiDWAY dans le forum Général Python
    Réponses: 2
    Dernier message: 18/09/2005, 16h42
  4. [Processeurs] A propos du nombre de bits ...
    Par Évariste Galois dans le forum Composants
    Réponses: 7
    Dernier message: 22/08/2005, 08h42
  5. [Débutant][RISC]Compter le nombre de bit à 1 dans un octet ?
    Par Pill_S dans le forum Autres architectures
    Réponses: 7
    Dernier message: 23/12/2004, 23h24

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