Binäre zahlen

Ich benutze die Python-Shell, um herauszufinden, wie der Druckbefehl in Python funktioniert.
Wenn ich eintippe

Drucken 01
1
Drucken 010
8
Drucken 0100
64
Drucken 030
24

Was ist denn hier los? Ist es nur base 2? Warum ist das "Eins" in der zweiten Position als 8? Sollte es nicht 2 sein, wenn es binär ist?

8 Solutions collect form web for “Binäre zahlen”

Das Starten einer Zahl mit einer Null markiert es als Oktal in Python 2. Dies wurde als verwirrend, überraschend und auch inkonsistent erkannt, da beginnend mit 0x es als hexadezimal markiert. Deshalb, in Python 3, beginnend mit 0 ist ungültig, und Sie erhalten Oktal, indem Sie mit 0o beginnen. Sie können auch mit 0b beginnen, um es als binär zu markieren.

>>> 10 10 >>> 0x10 16 >>> 0o10 8 >>> 0b10 2 >>> 010 File "<stdin>", line 1 010 ^ SyntaxError: invalid token 

0x, 0o und 0b funktioniert auch in Python 2.6 und Python 2.7.

Das ist die alte Notation für oktale Zahlen in Python.

In Python 2.6 und neuer sollten Sie die Syntax 0o10 für Oktal und 0b10010 für Binärzahlen verwenden.

In älteren Versionen von Python geben Sie Binärzahlen als Strings ein und analysieren sie auf Ganzzahlen:

 >>> x = int("10010", 2) >>> print x 18 

Vorangehen eines Integer-Literals mit 0 Mark es als Oktal.

Dies hat sich in Python 3 geändert und wird von Python 2.6 nicht empfohlen: Verwenden Sie 0o... stattdessen.

 >>> 0b1010 == 012 == 0xA == 10 True 

Wenn Sie 0 links neben der Zahl anhängen, wird es als Oktalzahl interpretiert. So ist 10 im Oktal gleich 8 in Dezimalzahl und 100 im Oktal entspricht 64 in Dezimalzahl und so weiter.

Wenn du mit Binärzahl umgehen willst, solltest du bitweise Operatoren mit den Bits spielen.

Wie in den meisten Programmiersprachen folgt Python der C-Tradition der Zahlen, beginnend mit 0 oktalen (Basis 8) Zahlen.

Es interpretiert sie als Oktal (Basis 8) Zahlen, nicht binär.

Definitiv nicht base2. Es ist Oktal – Basis 8.

Zahlen, die mit 0 beginnen, werden als Oktal interpretiert. Bei Binärzahlen ist die 'Startsequenz' 0b.

 >>> print 0b10 2 >>> print 010 8 >>> print 0x10 16 
  • Datei zum Lesen und Schreiben öffnen?
  • Konvertieren Sie die binäre Stringdarstellung eines Bytes in den aktuellen Binärwert in Python
  • Int zu binärer python
  • Regularer Ausdruck, der eine Binärdatei analysiert?
  • Warum Python unter Windows kann kein Bild im Binärmodus lesen?
  • Holen Sie sich den ROI von zwei Binärbildern und finden Sie den Unterschied der mittleren Bild-Intesitäten zwischen 2 ROI in Python
  • Wie kann ich binäre Postdaten über HTTP senden?
  • Python: Suchen / Lesen von Binärdaten
  • Python PIL Bytes zum Bild
  • So löschen Sie alle Knoten eines Binär-Suchbaums
  • Wie lese ich Bits aus einer Datei?
  • Python ist die beste Programmiersprache der Welt.