Ein Memo für mich. Wenn Sie Lust dazu haben, schreiben Sie es richtig um.
Manchmal möchten Sie, dass eine Dezimalzahl x eine n-stellige Binärzahl ist. (Hauptsächlich bei der Suche nach allen Bits) Sie können zu diesem Zeitpunkt das Format verwenden, aber ich konnte mich nicht erinnern, wie ich es schreiben sollte Notieren Sie sich, wie Sie es häufig verwenden.
Erklärung des Codes für den Fall, dass Sie vergessen. Die Binärzahl von x mit bin (x >> i) wird um eine Ziffer verschoben. Ich möchte nur die letzte Ziffer der verschobenen Zahl, also berechne ich den Rest nach Division durch 2. Um den Rest geteilt durch 2 zu berechnen, muss der bitverschobene auf int zurückgesetzt werden. Die Binärversion wird als "int (bin, 2)" zurück in die Dezimalzahl konvertiert. Wenn Sie die Reihenfolge der Zuweisung zu "x_array_bin" ändern, können Sie es richtig machen "[0,0,0,1,1]", Da es bei der Bit-Vollsuche nicht so relevant ist, bleibt es unverändert.
x = 3
n = 5
x_array_bin = [0 for _ in range(n)]
for i in range(n):
x_array_bin[i] = int(bin(x >> i),2)%2
print(x_array_bin)
#[1, 1, 0, 0, 0]
Recommended Posts