394 Stimmen

Wie kann man binäre Literale in Python ausdrücken?

Wie drückt man eine ganze Zahl als Binärzahl mit Python-Literalen aus?

Ich konnte die Antwort für Hex leicht finden:

>>> 0x12AF
4783
>>> 0x100
256

und oktal:

>>> 01267
695
>>> 0100
64

Wie verwendet man Literale, um Binärzahlen in Python auszudrücken?


Zusammenfassung der Antworten

  • Python 2.5 und früher: kann binär ausdrücken mit int('01010101111',2) aber nicht mit einer wörtlichen Rede.
  • Python 2.5 und früher: Es gibt auf keinen Fall um binäre Literale auszudrücken.
  • Python 2.6 beta: Sie können so vorgehen: 0b1100111 o 0B1100111 .
  • Python 2.6 beta: wird auch erlauben 0o27 o 0O27 (das zweite Zeichen ist der Buchstabe O), um ein Oktal darzustellen.
  • Python 3.0 Beta: Dasselbe wie 2.6, erlaubt aber nicht mehr die älteren 027 Syntax für Oktale.

1voto

Novus Edge Punkte 111

Eine weitere gute Methode, um eine ganzzahlige Darstellung aus dem Binärformat zu erhalten, ist die Verwendung von eval()

Etwa so:

def getInt(binNum = 0):
    return eval(eval('0b' + str(n)))

Ich denke, das ist auch eine Möglichkeit, das zu tun. Ich hoffe, dies ist eine zufriedenstellende Antwort :D

-2voto

Mark Biek Punkte 140395

Soweit ich sagen kann, Python, bis zu 2.5, unterstützt nur hexadezimale und oktale Literale. Ich habe einige Diskussionen über das Hinzufügen von binären zu zukünftigen Versionen gefunden, aber nichts Definitives.

-3voto

sparkes Punkte 19083

Ich bin mir ziemlich sicher, dass dies eines der Dinge ist, die sich in Python 3.0 mit vielleicht bin() ändern werden, um mit hex() und oct() zu gehen.

EDIT: Die Antwort von lbrandy ist in jedem Fall richtig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X