
Tableau de comparaison
Base de comparaison | Et | && |
---|---|---|
Opérateur | C'est un "opérateur au niveau des bits". | C'est un "opérateur logique". |
Évaluation | Il évalue les côtés gauche et droit de l'expression. | Il n'évalue que le côté gauche de l'expression. |
Fonctionne sur | Il fonctionne sur un "type de données booléen" et sur des "bits". | Il ne fonctionne que sur "type de données booléen". |
Utilisation | Utilisé pour vérifier la condition logique et également utilisé pour masquer certains bits tels que les bits de parité. | Utilisé uniquement pour vérifier la condition logique. |
Définition de & (bitwise AND)
Cet opérateur '&' est utilisé à la fois comme opérateur logique (&) et comme opérateur au niveau des bits. Cela fonctionne aussi bien sur les données booléennes que binaires. Lorsque l'opérateur & est utilisé en tant qu'opérateur & logique, alors, la valeur est "true" si les deux côtés de l'expression d'évaluation sont true, sinon la valeur "false" est renvoyée. Cela permet au compilateur d'évaluer à la fois le côté de l'expression. Autrement dit, même si le côté gauche de l'expression est faux, il évalue le côté droit de l'expression.
Permet de comprendre cela avec un exemple.
int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // sortie false b = 5
Ici, lors de l'évaluation du côté gauche de l'expression (a == 6), la valeur est false, l'opérateur & évalue ensuite le côté droit de l'expression (b ++ == 6) en conséquence, la valeur de b incrémente.
Lorsque '&' est utilisé en tant qu '«opérateur au niveau du bit», il convertit d'abord les deux opérandes en forme binaire, puis le traite à l'aide de l'opérateur &, opérateur, bit par bit. Après l'opération, le résultat obtenu est sous forme binaire, qui est ensuite converti en décimal. Tout bit 0 dans l'un des opérandes donne 0. Si les deux bits des opérandes sont 1, le bit résultant est 1. Opérateur binaire & est régi par la même table de vérité que par son opérateur logique &.
Voyons l'opération bitwise de & operator.
int a; a = 3 et 4; // 011 & 100 = 000 system.out.println ("a =" + a); // sortie a = 0
Ici, les valeurs décimales 3 et 4 sont initialement converties en leur forme binaire, puis l'opérateur & bitwise effectue l'opération & bit à bit. Le résultat obtenu est sous forme binaire, qui est à nouveau converti en forme décimale.
Définition de && (court-circuit ET)
Cet opérateur && fonctionne totalement comme un opérateur logique. Il fonctionne uniquement sur le type de données booléen. C'est aussi appelé opérateur de court-circuit. Comme il ne vérifie que le côté gauche de l'expression. Si le côté gauche de l'expression aboutit à false, il ne s'inquiète pas d'évaluer le côté droit de l'expression.
Permet de comprendre le fonctionnement de l'opérateur && avec un exemple.
int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // sortie false b = 4
Ici, la condition (a = 6) étant fausse, l'opérateur && n'évalue pas l'expression (b ++ = 6), la valeur de b n'incrémente pas.
Principales différences entre & et & &&
- L'opérateur & est à la fois un opérateur logique et binaire, car il opère à la fois sur des données booléennes et binaires, tandis que l'opérateur && n'est qu'un opérateur logique, car il n'agit que sur un type de données booléen.
- L'opérateur & évalue les deux côtés de l'expression pour obtenir le résultat final alors que l'opérateur && n'évalue que le côté gauche de l'expression & s'il s'avère faux, il n'évalue même pas le côté droit de l'expression.
Remarque:
Lors de l'évaluation du type de données booléen, les deux opérateurs ont pour résultat «vrai» uniquement si les deux opérandes sont vrais, sinon il retourne «faux».
Conclusion:
Les opérateurs & et && sont tous deux utilisés pour évaluer la condition booléenne, tandis que l'opérateur & est également utilisé pour l'opération au niveau du bit. Lorsque nous devons évaluer à la fois le côté de l'expression, l'opérateur & est utilisé, nous pouvons également utiliser l'opérateur &&.