Maison > développement back-end > Tutoriel Python > Comment convertir des entiers en chaînes dans des bases arbitraires ?

Comment convertir des entiers en chaînes dans des bases arbitraires ?

DDD
Libérer: 2024-12-13 18:25:10
original
681 Les gens l'ont consulté

How can integers be converted into strings in arbitrary bases?

Conversion d'entiers en chaînes dans des bases arbitraires

Cette question recherche une méthode pour convertir des entiers en chaînes dans n'importe quelle base. Contrairement à la fonction int(str, base) de Python, qui permet la création d'entiers à partir de chaînes d'une base spécifiée, l'approche souhaitée est son inverse, dans laquelle les chaînes sont construites à partir d'entiers.

Une solution simple

Intuitivement, les gens avaient tendance à se concentrer sur la conversion vers de petites bases (par exemple, inférieures à la longueur de l'alphabet anglais). Cependant, la question exige une solution universelle applicable à toute base de 2 à l'infini.

Une solution simple est présentée ci-dessous :

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
Copier après la connexion

Cette fonction prend un entier n et une base b comme saisit et renvoie une liste de chiffres représentant n en base b. Cela fonctionne en divisant itérativement n par b et en collectant les restes (c'est-à-dire les chiffres) dans une liste. La liste est ensuite inversée pour obtenir l'ordre correct des chiffres.

Par exemple, pour convertir 67854**15 - 102 en base 577 :

print(numberToBase(67854 ** 15 - 102, 577))
Copier après la connexion

Sortie :

[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]
Copier après la connexion

Ce résultat peut être converti davantage en toute autre base souhaitée.

Clé Points

  • La simplicité de la solution réside dans la prise de conscience qu'un nombre dans une base spécifique peut être représenté par une liste de chiffres où chaque chiffre représente une puissance de la base.
  • La fonction renvoie une liste de chiffres pour s'adapter à n'importe quelle base, même celles supérieures à 36 (la base alphabétique en Python).
  • Comprendre le concept de nombres dans différentes bases est crucial pour appréhender le fonctionnement de cette méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal