Heim >Backend-Entwicklung >Python-Tutorial >Wie können ganze Zahlen in beliebigen Basen in Zeichenfolgen umgewandelt werden?
Konvertierung von Ganzzahlen in Strings in beliebigen Basen
Diese Frage sucht nach einer Methode zum Konvertieren von Ganzzahlen in Strings in beliebigen Basen. Im Gegensatz zur int(str, base)-Funktion von Python, die die Erstellung von Ganzzahlen aus Zeichenfolgen einer bestimmten Basis ermöglicht, ist der gewünschte Ansatz die Umkehrung, bei der Zeichenfolgen aus Ganzzahlen erstellt werden.
Eine einfache Lösung
Intuitiv konzentrierten sich die Menschen eher auf die Konvertierung in kleine Basen (z. B. weniger als die Länge des englischen Alphabets). Die Frage erfordert jedoch eine universelle Lösung, die auf jede Basis von 2 bis unendlich anwendbar ist.
Eine einfache Lösung wird unten vorgestellt:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Diese Funktion akzeptiert eine ganze Zahl n und eine Basis b as gibt eine Liste von Ziffern ein, die n in Basis b darstellen, und gibt sie zurück. Dabei wird n iterativ durch b dividiert und die Reste (d. h. Ziffern) in einer Liste gesammelt. Die Liste wird dann umgekehrt, um die richtige Reihenfolge der Ziffern zu erhalten.
Um beispielsweise 67854**15 - 102 in die Basis 577 umzuwandeln:
print(numberToBase(67854 ** 15 - 102, 577))
Ausgabe:
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
Dieses Ergebnis kann weiter in jede andere gewünschte Basis umgewandelt werden.
Taste Punkte
Das obige ist der detaillierte Inhalt vonWie können ganze Zahlen in beliebigen Basen in Zeichenfolgen umgewandelt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!