Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une liste à partir d'un nombre

Sujet résolu
Anonyme
    25 juin 2013 à 14:02:01

    Bonjour,

    cela parait surement tout bête mais voilà mon soucis :

    J'essaye actuellement de créer un tableau avec un nombre de 8 chiffres. A chaque fois que ce nombre commence par un 0 ça foire..

    Voilà ce que j'ai essayé jusque là :

    def make_t(a):
        t = []
        t = [int(c) for c in str(a)]
        return t
    
    def make_t_b(a): #En fonctionnel
        t = []
        t = map(int,str(a))
        return t
    
    def make_t_t(a): #En tuples ...
        t = []
        t = tuple(int(c) for c in str(a))
        return t
    
    print make_t(01101111)
    print make_t_b(01101111)
    print make_t_t(01101111)
    print make_t(10101010)
    print make_t_b(10101010)


    Et voilà ce que j'obtiens ...

    python compl_comp.py
    [2, 9, 5, 4, 9, 7]
    [2, 9, 5, 4, 9, 7]
    (2, 9, 5, 4, 9, 7)
    [1, 0, 1, 0, 1, 0, 1, 0]
    [1, 0, 1, 0, 1, 0, 1, 0]

    J'ai essayé avec d'autres nombres.

    Dés que le nombre en question commence par 0, ça ne marche plus. 

    J'ai impérativement besoin de ces 0 (ces tableaux sont sensés me permettrent de faire des comparaison de nombres binaires signés, sur 8 bits ..).

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      25 juin 2013 à 14:15:19

      Les nombres qui commencent par 0 expriment une valeur en octal (de toute manière, il n'aurait pas été gardé dans ta chaîne). Mais pourquoi ne passes-tu pas une chaîne de caractère à tes fonctions ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        25 juin 2013 à 14:25:47

        quand on écrit un entier en commençant par un 0, ça veut dire qu'on encode le nombre en base 8. Sinon, c'est complètement loufoque d'entrer des entiers dont l'écriture en base 10 est la représentation binaire des nombres que à entrer. Si j'ai bien compris: 10101010, etc. -> écriture binaire d'entiers de 8 bits (signés). Pour écrire des représentations de nombres (autres qu'en base 10) en dur dans le code, il vaut mieux utiliser des str. Ensuite, en peut les convertir en entiers avec int("101", 2) où 2 est la base dans laquelle est encodé le nombre (et alors on peut facilement comparer, faire des opérations bit-à-bit...). Si on veut trouver la représentation binaire d'un entier, on utilise bin (et on peut convertir la chaine obtenue en liste).

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          25 juin 2013 à 14:34:17

          En effet, c'est juste 15 fois plus simple avec ls str, j'aurais du y penser avant.

          Je vais quand même essayer de les convertir, histoire de me faire la main.

          Merci beaucoup !

          -
          Edité par Anonyme 25 juin 2013 à 14:35:45

          • Partager sur Facebook
          • Partager sur Twitter

          Créer une liste à partir d'un nombre

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown