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