J'ai un problème que j'espérais que quelqu'un puisse m'aider à comprendre!
J'ai une chaîne avec un numéro hexadécimal = Toutes les combinaisons avec celles-ci sont possibles. I.E., Comment puis-je de ma chaîne déterminer quel fruit il est? J'ai fait un dictionnaire avec toutes les combinaisons, puis comparer à cela, et ça marche! Mais je me demande de manière plus agréable de le faire. P> p> '0x00000000' code> ce qui signifie: p>
0x01010000 = Apple & Orange Code> P>
3 Réponses :
Convertissez votre chaîne en un entier en utilisant la fonction maintenant, si vous devez convertir Retour à votre chaîne: p> int () code> de la fonction intégrée et spécifiant une base:
& code>,
| code> et tout autre opérateur bitwise pour tester des bits individuels. p>
C'est ce qu'on appelle les OP Bitwise et vous pouvez ou valoriser ensemble les résultats combinés. Le test, ((((64 | 80) = 80) retournera true si 64 (Apple) est orné dans 80 (la somme de toutes ou des valeurs). wiki.python.org/moin/bitwiseopérateurs et
Merci à tous pour des réponses rapides! Je vais lire sur des opérateurs bitwises!
Vous pouvez tout d'abord convertir votre chaîne en un entier:
The fruit 'apple' is contained in '0x01010000' The fruit 'orange' is contained in '0x01010000'
def WhichFruit(n): if n & int('0x01000000',16): print 'apple' if n & int('0x00010000',16): print 'orange' if n & int('0x00000100',16): print 'banana' WhichFruit(int('0x01010000',16))