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

Comment puis-je convertir des entiers en chaînes dans des bases arbitraires en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 22:05:16642parcourir

How Can I Convert Integers to Strings in Arbitrary Bases in Python?

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

En Python, les entiers peuvent être facilement convertis à partir de chaînes à l'aide de la fonction int(str, base) . Cependant, l'opération inverse consistant à créer une chaîne à partir d'un entier peut être plus difficile.

Solution personnalisée pour les bases arbitraires

Le code suivant définit une solution personnalisée, numberToBase, qui peut convertir n'importe quel entier n en chaîne dans n'importe quelle base b :

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

Cette fonction fonctionne sur le principe de la division répétée par le socle B. Il calcule à plusieurs reprises le reste de n lorsqu'il est divisé par b et l'ajoute à une liste de chiffres. Le processus se poursuit jusqu'à ce que n devienne zéro. Les chiffres sont ensuite inversés pour obtenir la représentation correcte en base b.

Exemple d'utilisation

Pour convertir un grand nombre en base 577 :

print(numberToBase(67854 ** 15 - 102, 577))

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]

Ce résultat peut ensuite être converti en n'importe quelle autre base comme nécessaire.

Avantages par rapport aux fonctions intégrées

Contrairement aux fonctions intégrées telles que bin, oct et hex, la fonction numberToBase offre plusieurs avantages :

  • Fonctionne sur n'importe quelle version de Python (à partir de la version 2.2)
  • Convertit vers n'importe quelle base arbitraire (non limité à 2, 8 ou 16)
  • Renvoie une liste de chiffres, permettant une conversion facile vers d'autres bases ou représentation sous forme de chaîne

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!

Déclaration:
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