Um eine Ganzzahl in eine Binärzahl umzuwandeln, habe ich diesen Code verwendet:
>>> bin(6)
'0b110'
und wann ich die '0b' löschen soll, benutze ich Folgendes:
>>> bin(6)[2:]
'110'
Was kann ich tun, wenn ich 6
als 00000110
statt zeigen möchte 110
?
Antworten:
Nur um die Teile der Formatierungszeichenfolge zu erklären:
{}
Platziert eine Variable in einer Zeichenfolge0
nimmt die Variable an Argumentposition 0:
fügt Formatierungsoptionen für diese Variable hinzu (andernfalls würde sie eine Dezimalzahl darstellen6
)08
formatiert die Zahl auf acht Ziffern, die links mit Nullen aufgefüllt sindb
konvertiert die Zahl in ihre binäre DarstellungWenn Sie eine Version von Python 3.6 oder höher verwenden, können Sie auch F-Strings verwenden:
quelle
0
bedeutet das0th
Argument zuformat
. Nachdem der Doppelpunkt die Formatierung ist,0
bedeutet der zweiteb
format()
Funktion vereinfacht werden :format(6, '08b')
; Die Funktion verwendet einen Wert (für den der{..}
Steckplatz gilt) und eine Formatierungsspezifikation (was auch immer Sie nach dem:
in die Formatierungszeichenfolge setzen würden ).'{0:08b}'.format(-6)
->'-0000110'
. Was ist, wenn Sie kein Schild wollen?struct
?-6%256
?Nur eine andere Idee:
Kürzere Methode über String-Interpolation ( Python 3.6+ ):
quelle
bin(-6)[2:].zfill(8)
als'0000b110'
Ein bisschen Twiddling-Methode ...
quelle
x
nach rechts und UNDs mit1
, wodurch effektiv jeweils ein Bit (0 oder 1) extrahiert wird.Verwenden Sie einfach die Formatierungsfunktion
Die allgemeine Form ist
quelle
1000000 loops, best of 3: 556 ns per loop
Die Antwort von eumiro ist besser, aber ich poste dies nur aus Gründen der Abwechslung:
quelle
'%08x' % int(bin(6)[2:], 16)
.. oder wenn Sie nicht sicher sind, ob es immer 8-stellig sein soll, können Sie es als Parameter übergeben:
quelle
numpy.binary_repr(num, width=None)
hat ein magisches BreitenargumentRelevante Beispiele aus der oben verlinkten Dokumentation:
quelle
Going Old School funktioniert immer
quelle
number=number/2
gibt float, alsonumber=number//2
number=number//2
number//=2
b=b+"0"
b+="0"
oder
quelle
Angenommen, Sie möchten die Anzahl der Ziffern analysieren, die zur Darstellung einer Variablen verwendet werden, die nicht immer konstant ist. Eine gute Möglichkeit ist die Verwendung von numpy.binary.
Dies kann nützlich sein, wenn Sie Binärdateien auf Stromversorgungssätze anwenden
quelle
Am besten geben Sie das Format an.
Gibt den Binärwert von a im String-Format zurück.
Verwenden Sie die Funktion int (), um eine Binärzeichenfolge wieder in eine Ganzzahl umzuwandeln.
Gibt einen ganzzahligen Wert der Binärzeichenfolge zurück.
quelle
quelle