Wie drückt man eine Ganzzahl als Binärzahl mit Python-Literalen aus?
Ich konnte leicht die Antwort für hex finden:
>>> 0x12AF
4783
>>> 0x100
256
und oktal:
>>> 01267
695
>>> 0100
64
Wie verwenden Sie Literale, um Binärdateien in Python auszudrücken?
Zusammenfassung der Antworten
- Python 2.5 und früher: Kann Binär mit,
int('01010101111',2)
aber nicht mit einem Literal ausdrücken . - Python 2.5 und früher: Es gibt keine Möglichkeit , binäre Literale auszudrücken.
- Python 2.6 Beta: Sie können dies tun:
0b1100111
oder0B1100111
. - Python 2.6 Beta: Ermöglicht auch
0o27
oder0O27
(zweites Zeichen ist der Buchstabe O) die Darstellung eines Oktals. - Python 3.0 Beta: Wie 2.6, lässt jedoch die ältere
027
Syntax für Oktale nicht mehr zu .
Sie sind keine "binären" Literale, sondern "ganzzahlige Literale". Sie können ganzzahlige Literale mit einem Binärformat ausdrücken,
0
gefolgt von einemB
oderb
gefolgt von einer Reihe von Nullen und Einsen, zum Beispiel:In den Python 3- Dokumenten können Sie auf folgende Weise ganzzahlige Literale in Python bereitstellen:
Andere Möglichkeiten, Binärdateien auszudrücken:
Sie können die Nullen und Einsen in einem Zeichenfolgenobjekt haben, das manipuliert werden kann (obwohl Sie in den meisten Fällen wahrscheinlich nur bitweise Operationen an der Ganzzahl ausführen sollten) - übergeben Sie einfach die Zeichenfolge aus Nullen und Einsen und die Basis, von der Sie konvertieren (2) ):
Optional können Sie das Präfix
0b
oder haben0B
:Wenn Sie es
0
als Basis übergeben, wird Basis 10 angenommen, wenn die Zeichenfolge kein Präfix enthält:Konvertieren von int zurück in von Menschen lesbare Binärdateien:
Sie können eine Ganzzahl an bin übergeben, um die Zeichenfolgendarstellung eines binären Literal anzuzeigen:
Und Sie können kombinieren
bin
undint
hin und her gehen:Sie können auch eine Formatspezifikation verwenden, wenn Sie eine Mindestbreite mit vorhergehenden Nullen haben möchten:
quelle
0 am Anfang hier gibt an, dass die Basis 8 (nicht 10) ist, was ziemlich leicht zu sehen ist:
Wenn Sie nicht mit einer 0 beginnen, geht Python davon aus, dass die Zahl Basis 10 ist.
quelle
Soweit ich das beurteilen kann, unterstützt Python bis 2.5 nur hexadezimale und oktale Literale. Ich habe einige Diskussionen über das Hinzufügen von Binärdateien zu zukünftigen Versionen gefunden, aber nichts Bestimmtes.
quelle
Ich bin mir ziemlich sicher, dass dies eines der Dinge ist, die sich in Python 3.0 ändern, wenn vielleicht bin () mit hex () und oct () übereinstimmt.
EDIT: Die Antwort von lbrandy ist in allen Fällen richtig.
quelle