Recommandé, 2021

Choix De L'Éditeur

Différence entre & et & &&

Les opérateurs "&" et "&&" sont les deux opérateurs utilisés pour évaluer les instructions conditionnelles. L'opérateur & est un opérateur logique ainsi que binaire. L'opérateur && est purement un opérateur logique. La différence fondamentale entre les opérateurs & et && est que l'opérateur & évalue les deux côtés de l'expression, tandis que l'opérateur && n'évalue que le côté gauche de l'expression pour obtenir le résultat final. Laissez-nous comprendre les autres différences entre & et && à l'aide du tableau de comparaison.

Tableau de comparaison

Base de comparaisonEt&&
OpérateurC'est un "opérateur au niveau des bits".C'est un "opérateur logique".
ÉvaluationIl évalue les côtés gauche et droit de l'expression.Il n'évalue que le côté gauche de l'expression.
Fonctionne surIl fonctionne sur un "type de données booléen" et sur des "bits".Il ne fonctionne que sur "type de données booléen".
UtilisationUtilisé 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 & &&

  1. 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.
  2. 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 &&.

Top