Comment vous exprimer binaire littéraux en Python?
Comment exprimez-vous un entier comme un nombre binaire avec Python littéraux?
J'ai été capable de trouver la réponse à hex:
>>> 0x12AF
4783
>>> 0x100
256
et octal:
>>> 01267
695
>>> 0100
64
Comment utilisez-vous les littéraux d'exprimer binaire en Python?
Résumé des Réponses
- Python 2.5 et les versions antérieures: peut exprimer binaire à l'aide de
int('01010101111',2)
mais pas avec un littéral. - Python 2.5 et les versions antérieures: il y a aucun moyen exprimer binaire littéraux.
- Python 2.6 beta: Vous pouvez le faire comme ceci:
0b1100111
ou0B1100111
. - Python 2.6 beta: permettra également
0o27
ou0O27
(deuxième caractère est la lettre O) pour représenter un octal. - Python 3.0 beta: comme 2.6, mais ne permet plus aux plus âgés
027
syntaxe pour octals.
Vous devez vous connecter pour publier un commentaire.
De référence—avenir Python possibilités:
En commençant avec la version 2.6 de Python vous pouvez exprimer binaire littéraux à l'aide du préfixe 0b ou 0B:
Vous pouvez également utiliser la nouvelle bin fonction permettant d'obtenir la représentation binaire d'un nombre:
Développement de la version de la documentation: Quoi de neuf dans la version 2.6 de Python
D'une autre manière.
Ils ne sont pas "binaire", littérales, mais plutôt, "les littéraux entiers". Vous pouvez exprimer les littéraux entiers avec un format binaire avec un
0
suivie par unB
oub
suivie par une série de zéros et de uns, par exemple:De l'Python 3 docs, ce sont les moyens de fournir les littéraux entiers en Python:
D'autres façons d'exprimer binaire:
Vous pouvez avoir les zéros et les uns dans une chaîne de caractères de l'objet qui peut être manipulé (bien que vous devriez probablement juste de faire des opérations bit à bit sur l'entier dans la plupart des cas) - il suffit de passer int la chaîne de zéros et de uns et de la base de la conversion à partir de (2):
Vous pouvez éventuellement avoir la
0b
ou0B
préfixe:Si vous passer
0
comme la base, il assumera la base 10 si la chaîne n'a pas de spécifier un préfixe:La conversion de int en arrière de lisible par l'homme binaire:
Vous pouvez passer un entier à la poubelle pour voir la représentation sous forme de chaîne binaire littérale:
Et vous pouvez combiner
bin
etint
à faire l'aller-retour:Vous pouvez utiliser une spécification de format ainsi, si vous voulez avoir une largeur minimale précédée de zéros:
0 dans le spécifie que la base est de 8 (pas 10), ce qui est assez facile à voir:
Si vous ne commencez pas par un 0, alors python suppose que le nombre est en base 10.
Aussi loin que je peux dire à Python, jusqu'à 2.5, prend uniquement en charge les hexadécimal & octal littéraux. J'en ai trouvé quelques discussions à propos de l'ajout des binaires pour les futures versions, mais rien de bien défini.
Je suis assez sûr que c'est l'une des choses en raison de la variation de Python 3.0 avec peut-être bin() pour aller avec hex() et les ptom().
EDIT:
lbrandy réponse est bonne dans tous les cas.