Depuis Python 3, il n'y a pas de limite supérieure sur la taille d'un int. Je voudrais traiter d'énormes entiers de plus de 150 chiffres décimaux. C'est beaucoup plus grand qu'un long long non signé est garanti, donc je ne pense pas ...

1
theonlygusti 17 mars 2021 à 02:51

1 réponse

Meilleure réponse

Manipulez-les simplement comme entiers Python, avec des opérations arithmétiques Python comme PyNumber_Add et PyNumber_Multiply. N'essayez pas de convertir en un entier machine.

Maintenant, si vous espériez obtenir un avantage de vitesse en faisant cela en C, eh bien, cela ne se produira pas. Si vous souhaitez optimiser les opérations sur des nombres entiers volumineux, essayez une bibliothèque bignum plus efficace, telle que gmpy2. Assurez-vous également que votre algorithme est efficace - ce _reverseBits élément de votre question de révision de code est extrêmement inefficace quelle que soit l'implémentation d'entiers utilisée.

2
user2357112 supports Monica 17 mars 2021 à 00:00