arriver entier de 64 bits en python
Donc, je pense à l'écriture d'un bitboard en python ou en lisp. Mais je ne sais pas comment faire pour m'assurer que je voudrais obtenir un entier de 64 bits en python. J'ai lu la documentation et a constaté que mpz bibliothèque renvoie un entier de 32 bits non signé. Est-ce vrai? Si non, que dois-je faire?
Qu'entendez-vous par "un bitboard"? Combien de bits avez-vous vraiment besoin? Ce qui est spécial à propos de les entiers 64 bits qui peut vous aider à résoudre votre problème? Qu'est-ce exactement que vous essayez de faire?
Si vous voulez faire des bits de se tourner, Python est un très mauvais choix que les opérations ne seront pas compilés dans un petit nombre de CPU arithmétique des instructions.
Si vous voulez faire des bits de se tourner, Python est un très mauvais choix que les opérations ne seront pas compilés dans un petit nombre de CPU arithmétique des instructions.
OriginalL'auteur Mark | 2011-12-30
Vous devez vous connecter pour publier un commentaire.
Vous avez quelques options à l'aide de gmpy. Voici un exemple d'utilisation de gmpy:
gmpy2 est la version de développement de gmpy et inclut un nouveau type appelé xmpz qui permet un accès plus direct à l'bits.
Il y a d'autres solutions telles que bitarray vous pourriez vouloir regarder.
Avertissement: je maintiens gmpy et gmpy2.
Je n'ai pas comparé les performances avec bitarray. Dans l'exemple ci-dessus, xmpz peu d'accès est deux fois plus rapide que mpz.
OriginalL'auteur casevh
Python 2 a deux types d'entiers:
int
, qui est un entier signé dont la taille correspond à votre machine de la taille de mot (mais est toujours d'au moins 32 bits), etlong
, qui est illimité en taille.Python 3 n'a qu'un seul type entier, qui est appelé
int
mais est équivalent à un Python 2long
.Essentiellement, j'ai besoin de 64 bits pour représenter un échiquier. J'ai lu le code source de certains programmes et qu'ils utilisent mpz. Mais malheureusement il n'est pas très bien documenté. Si je veux stocker un entier de 64 bits que dois-je faire? Pourriez-vous nous donner un exemple?
Vous êtes à la recherche à certains codes périmés. À partir de PEP 4: Le mpz module a été documenté comme obsolète depuis Python 2.2. Retiré de la bibliothèque de référence en Python 2.4.
Je pense que MPZ a été réimplémentée dans un module appelé gmpy. La plupart des programmes, je suis de la lecture semble inclure mpz de gmpy.
OK, alors voir gmpy docs: Une mpz objet peut être transformé en un Python nombre en le passant comme argument d'un appel à Python intégré nombre types (int, long, float, complexe). Par exemple, l'utilisation
long(x)
OriginalL'auteur Taymon