Heim >Backend-Entwicklung >Python-Tutorial >Wie können ganze Zahlen in beliebigen Basen in Zeichenfolgen umgewandelt werden?

Wie können ganze Zahlen in beliebigen Basen in Zeichenfolgen umgewandelt werden?

DDD
DDDOriginal
2024-12-13 18:25:10681Durchsuche

How can integers be converted into strings in arbitrary bases?

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

  • Die Einfachheit der Lösung liegt in der Erkenntnis, dass eine Zahl in einer bestimmten Basis durch eine Liste von Ziffern dargestellt werden kann, wobei jede Ziffer eine Potenz der Basis darstellt.
  • Die Funktion gibt eine Liste von Ziffern zurück, um jede Basis aufzunehmen, auch solche, die größer als 36 sind (die alphabetische Basis in Python).
  • Das Konzept der Zahlen in verschiedenen verstehen Grundlagen sind entscheidend für das Verständnis der Funktionsweise dieser Methode.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn