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
Libérer: 2024-12-03 22:05:16
original
645 Les gens l'ont consulté

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

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))
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 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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal