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.)
Vous devez vous connecter pour publier un commentaire.
Comparer les représentations binaires de chacun de ceux-ci.
Dans chaque cas, un chiffre est un 1 dans la suite, seulement quand il est de 1 sur le côté gauche ET à droite de l'entrée.
Vous avez besoin de convertir vos numéros de représentation binaire et puis, vous verrez le lien entre les résultats comme 6 & 2= 2 est réellement 110 & 010 =010 etc
10 & 5 est de 1010 & 0101 = 0000
Le binaire et l'opération est effectuée sur les entiers, représenté en binaire. Par exemple
(on dirait que tu es de calcul est mauvais pour celui-ci)
Etc...
En interne, les Entiers sont stockés dans format binaire. Je vous suggère fortement de lire ce sujet. Connaître le bit à bit de la représentation des nombres est très important.
Cela étant dit, la bit-à-bit de comparaison compare les bits de paramètres:
Le bit à bit ET est fait exactement cela: il ne un ET de l'opération sur les Bits.
Afin d'anticiper le résultat que vous avez besoin de regarder les bits, pas le nombre.
ET vous donne 1, seulement si il existe 1 en nombre dans la même position:
Un or vous donne 1 si il y a 1 dans les deux les chiffres dans la même position:
Bitwize ET les matchs les bits en notation binaire, un par un, et le résultat est le bits qui sont communs entre les deux nombres.
Pour convertir un nombre binaire, vous devez comprendre le système binaire.
Par exemple
6 = 110 binaire
L'110 représente 1x4 + 1x2 + 0 x 1 = 6.
2 alors
0x4 + 1x2 + 0 x 1 = 2.
Bitwize et ne retient que les positions où les deux nombres ont le en position, dans ce cas, le bit pour 2 et le résultat est de 2.
Chaque bit supplémentaire est le double de la dernière pour un 4 nombre de bits utilise les multiplicateurs de 8, 4, 2, 1 et peut donc représenter tous les nombres de 0 à 15 (la somme des multiplicateurs.)