Lorsque j'utilise le bitwise et l'opérateur( &
) avec le chiffre 1 pour savoir si un nombre x est impair ou pair (x & 1)
L'interprète modifie-t-il la représentation binaire de 1 en fonction de la représentation binaire de x ? Par exemple :
- 2 & 1 -> 10 & 01 -> puis effectuer une comparaison par bit
- 5 & 1 -> 101 & 001 -> puis effectuer une comparaison bit à bit
- 100 & 1 -> 1100100 & 0000001 -> puis effectuer une comparaison par bit
Ajoute-t-il des zéros à la représentation binaire de 1 pour effectuer une opération bit à bit ?
En regardant le mise en œuvre de cpython il semble qu'il compare les chiffres en fonction de la taille de l'argument de droite. Donc, dans ce cas, l'exemple ci-dessus fonctionne réellement :
- 2 & 1 -> 10 & 1 -> 0 & 1 -> puis comparaison bit à bit
- 5 & 1 -> 101 & 1 -> 1 & 1 -> puis comparaison bit à bit
- 100 & 1 -> 1100100 & 1 -> 0 & 1 -> puis comparaison bit à bit
Est-ce que je comprends bien ? Je suis confus à cause de cette image de Les Geeks pour les Geeks .