Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiert man Ganzzahlen in einer beliebigen Basis in Python in Strings?

Wie konvertiert man Ganzzahlen in einer beliebigen Basis in Python in Strings?

Barbara Streisand
Freigeben: 2024-12-06 10:28:11
Original
460 Leute haben es durchsucht

How to Convert Integers to Strings in Any Base in Python?

Ganzzahlen in Strings in beliebiger Basis konvertieren

Python bietet praktische Funktionen zum Konvertieren von Strings in Ganzzahlen unter Verwendung einer angegebenen Basis über die Funktion int() , aber die Rückkonvertierung von Ganzzahlen in Zeichenfolgen mit unterschiedlichen Basen stellt eine Herausforderung dar. Dieser Artikel soll sich mit dieser Aufgabe befassen und eine allgemeine Lösung bereitstellen, die die Einschränkungen integrierter Funktionen überwindet.

Die Funktion int2base()

Um das Problem anzugehen, Es wird eine Funktion int2base(num, base) vorgeschlagen, die die folgenden Anforderungen erfüllt:

  • Konvertiert eine Ganzzahl x in eine Zeichenfolge str in base b: int(str, b) == x
  • Unterstützt jedes gültige x und b, das von der int()-Funktion akzeptiert wird

Eine überraschend einfache Lösung

Entgegen den Erwartungen gibt es eine einfache Lösung:

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
Nach dem Login kopieren

Diese Lösung funktioniert für jede Basis ab 2 bis ins Unendliche. Wenn Sie eine große ganze Zahl in die Basis 577 umwandeln müssen, zum Beispiel:

numberToBase(67854 ** 15 - 102, 577)
Nach dem Login kopieren

Es wird korrekt zurückgegeben:

[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]
Nach dem Login kopieren

Dieses Ergebnis kann dann bei Bedarf problemlos in eine andere Basis umgewandelt werden .

Die Lösung verstehen

Der Schlüssel zu dieser Lösung liegt im Verständnis der Darstellung von Zahlen in verschiedenen Basen. Beispielsweise steht in der Basis 10 die Zahl 123 für (1 10^2) (2 10^1) (3 * 10^0). In ähnlicher Weise kann in einer beliebigen Basis b eine Zahl als Summe von Potenzen von b dargestellt werden.

Die Funktion numberToBase() funktioniert, indem sie die Eingabe n iterativ durch b dividiert und die Reste sammelt. Diese Reste stellen in umgekehrter Reihenfolge die Ziffern der Zahl zur Basis b dar.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Ganzzahlen in einer beliebigen Basis in Python in Strings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage