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 :

Long vers hex string


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut Long vers hex string
    Bonjour,

    Il y a un comportement que je ne comprends pas regardant la conversion string-> hex.
    Example:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> a = "AAAA"
    >>> int(a.encode('hex'), 16)
    1094795585
    >>> z = int(a.encode('hex'), 16)
    >>> str(z)
    '1094795585'
    >>> str(z).decode('hex')
    '\x10\x94yU\x85'
    Je pense que ma conversion int => str est incorrecte (ne travaille pas en base 16), et c'est pourquoi je ne retouve pas mon resultat en hex.

    Je ne controle pas la conversion string => int en base 16, mais doit faire l'inverse pour retrouver certaines valeurs.

    Merci!

  2. #2
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    J'ai mis du temps a trouver.

    Y'a rien dans la bibliotheque standard pour convertir un int vers un string dans une certaine base.

    Cette solution marche pour moi:
    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
    import string
    digs = string.digits + string.lowercase
     
    def int2base(x, base):
      if x < 0: sign = -1
      elif x==0: return '0'
      else: sign = 1
      x *= sign
      digits = []
      while x:
        digits.append(digs[x % base])
        x /= base
      if sign < 0:
        digits.append('-')
      digits.reverse()
      return ''.join(digits)
     
    >>> int2base(z,16)
    '41414141'
    >>> print int2base(z,16).decode('hex')
    AAAA

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    Je ne comprend pas. Il y a la fonction hex dans les built-in pour cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> z = 1094795585
    >>> hex(z)
     '0x41414141'
    >>> hex(z)[2:]
    '414141'

  4. #4
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Citation Envoyé par Sekigo Voir le message
    Je ne comprend pas. Il y a la fonction hex dans les built-in pour cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> z = 1094795585
    >>> hex(z)
     '0x41414141'
    >>> hex(z)[2:]
    '414141'
    Je me sens terriblement con des fois.

    Merci bien

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

Discussions similaires

  1. [question] cast de long vers int
    Par Faiche dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2006, 10h22
  2. Cast string vers vertor<string>
    Par franc82 dans le forum C++
    Réponses: 4
    Dernier message: 10/11/2006, 00h03
  3. De int et long vers char*
    Par olivier857 dans le forum C++
    Réponses: 27
    Dernier message: 23/06/2006, 16h23
  4. Conversion Lat/Long vers UTM
    Par efficks dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/12/2005, 17h13
  5. conversion d'un type Extended vers un string
    Par matterazzo dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2005, 19h22

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