Ganzzahlen in Strings in beliebigen Basen konvertieren
In Python können Ganzzahlen mithilfe der Funktion int(str, base) einfach aus Strings konvertiert werden . Der umgekehrte Vorgang zum Erstellen einer Zeichenfolge aus einer Ganzzahl kann jedoch schwieriger sein.
Benutzerdefinierte Lösung für beliebige Basen
Der folgende Code definiert eine benutzerdefinierte Lösung, numberToBase, die jede ganze Zahl n in eine Zeichenfolge in jeder Basis b umwandeln kann:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Diese Funktion arbeitet nach dem Prinzip der wiederholten Division durch die Basis b. Es berechnet wiederholt den Rest von n, wenn es durch b dividiert wird, und fügt ihn einer Liste von Ziffern hinzu. Der Prozess wird fortgesetzt, bis n Null wird. Die Ziffern werden dann umgekehrt, um die korrekte Darstellung in Basis b zu erhalten.
Beispielverwendung
Um eine große Zahl 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 dann in jede andere Basis umgewandelt werden als benötigt.
Vorteile gegenüber integrierten Funktionen
Im Gegensatz zu integrierten Funktionen wie Bin, Okt und Hex bietet die Funktion „numberToBase“ mehrere Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann ich in Python ganze Zahlen in beliebige Basen in Zeichenfolgen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!