La compréhension du comportement d'un seul opérateur "et commercial" (&) sur des entiers

Je comprends que le seul opérateur "et commercial" est normalement utilisée pour une "au niveau du bit ET de l'opération". Cependant, n'importe qui peut aider à expliquer les résultats les plus intéressants que vous obtenez lorsque vous l'utilisez à des fins de comparaison entre deux nombres?

Par exemple;

(6 & 2) = 2
(10 & 5) = 0
(20 & 25) = 16
(123 & 20) = 16

Il semble y avoir aucun lien logique entre ces résultats - suis-je raté quelque chose? En ligne de la documentation semble faire référence à la comparaison des valeurs booléennes ou bits.

  • Êtes-vous sûr ( 20 & 25 ) == 4?
  • Je l'ai eu.
  • Ce que vous voyez est le résultat d'un "bit à bit ET de l'opération". (Sauf pour le (20 & 25) = 4 bits, ce qui je suppose est une faute de frappe.)
InformationsquelleAutor Jonathan | 2011-01-21