|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 81 ![]() |
Bonjour,
La FAQ propose --> ICI <-- deux fonctions bin() et bin_optimise() pour convertir un entier en base 2. D'une part, ces deux fonctions ne donnent pas le résultat attendu si le nombre à convertir est grand, par exemple bin(4523655555) (et de même pour l'autre fonction) affiche : Code :
1L0L0L0L0L1L1L0L1L1L0L1L0L0L0L0L1L1L0L0L0L0L0L0L1L1L0L0L0L0L0L1L1L D'autre part, ces deux fonctions sont, sauf erreur de ma part, bien plus lentes que la fonction utilisant la conversion depuis l'octal ou l'hexa. Voici ces fonctions et les tests (Python 2.5) : Code :
Code :
EDIT Je continue ma lecture de la FAQ et je vois qu'il est signalé à la question "Comment convertir un nombre entier dans une autre base ?" qu'en version 2.6 et postérieures, on dispose d'une fonction bin (builtin ?) pour convertir en base 2. Je pense qu'il faudrait le signaler aussi à la question que j'ai évoquée en début de message où il est dit le contraire : Citation:
Citation:
|
||||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Inscription : décembre 2007 Messages : 1 766 ![]() |
Bonjour,
Pour la conversion en binaire (y compris binaire signé), tu peux aussi voir ici sur mon site: http://python.jpvweb.com/mesrecettes...ons_en_binaire Par curiosité, en utilisant ton code de test (avec n=3000000), voici ce que j'obtiens: Code :
__________________
Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos... Mes recettes python: http://www.jpvweb.com |
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() ![]() Ingénieur développement logiciels Inscription : août 2002 Messages : 1 861 ![]() |
Effectivement, le code n'avait pas été testé avec des nombres grands. Pour contrecarrer cela, il suffit (bien entendu, avec un peu de perte en performance) de rajouter [0] pour être sûr de ne prendre qu'un seul caractère
Code :
En revanche, au niveau temps de calcul, je ne tombe pas sur les mêmes ordres de grandeurs que toi (faudra que je regarde de plus près). Effectivement, à la question "Comment convertir un nombre entier en binaire ?" de la FAQ, il faudra que je corrige le début (surtout qu'en fait de question, il est fait mention de cette fonction bin) |
||
|
|
00
|
|
|
#4 | |||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 81 ![]() |
Tiens je ne connaissais pas mais je suis juste en phase de post-découverte.
Citation:
Merci de vos réponses et A+. EDIT : Je me rends compte qu'une liste Code :
t=['000', '001', '010', '011', '100', '101', '110', '111'] Code :
t={'0':'000', '1':'001', '2':'010', '3':'011', '4':'100', '5':'101','6':'110','7':'111'} |
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com