logo

Diferencia entre & y && en Java

En esta sección, discutiremos los dos operadores más importantes. & y && en Java y también ver el diferencias clave entre lógica y operadores bit a bit junto con sus usos.

Diferencia entre & y && en Java

& Operador

El único operador AND ( & ) se conoce como el Bit a bit Y operador. Funciona con un solo bit. Se necesitan dos operandos. Un bit en el resultado es 1 si y sólo si ambos bits correspondientes en los operandos son 1. El resultado del operador puede ser cualquier número. Por ejemplo:

un = 01100010

segundo = 10111010

a&b = 00100010

&& Operador

Los operadores dobles AND (&&) se conocen como lógico Y operadores. Suele utilizarse en bucles y declaraciones condicionales. Suele utilizarse en expresiones booleanas. El resultado de && es siempre 0 o 1.

Diferencia entre & y &&

La diferencia clave entre los operadores && y & es que && admite evaluaciones de cortocircuito, mientras que & el operador no.

Otra diferencia es que && evaluará la expresión exp1 e inmediatamente devolverá un valor falso si exp1 es falso. Mientras que el operador & siempre evalúa ambas expresiones (exp1 y exp2) antes de retirar una respuesta.

SN Base & Operador && Operador
1 Operador Es un operador AND bit a bit. Es un operador lógico AND.
2 Evaluación Evalúa tanto el lado izquierdo como el derecho de la expresión dada. Sólo evalúa los lados izquierdos de la expresión dada.
3 Opera en Opera tanto con tipos de datos booleanos como con bits. Opera sólo con tipos de datos booleanos.
4 Usos Se utiliza para comprobar la condición lógica y también para enmascarar ciertos bits, como los bits de paridad. Se utiliza únicamente para comprobar las condiciones lógicas.
5 Ejemplo z = x y y si (y > 1 && y > x)

Entendamos el operador bit a bit y lógico a través de un programa Java.

LogicalAndExample.java

cambiar nombre directorio linux
 public class LogicalAndExample { public static void main(String args[]) { int a=10, b=20; if (a == 10 &amp;&amp; b == 20) System.out.println(&apos;true&apos;); else System.out.println(&apos;false&apos;); int c=78, d=90; if (a &gt; c &amp;&amp; b <d) system.out.println('true'); else system.out.println('false'); } < pre> <p> <strong>Output:</strong> </p> <pre> true false </pre> <p> <strong>BitwiseAndExample.java</strong> </p> <pre> public class BitwiseAndExample { public static void main(String args[]) { int a = 3; int b = 9; //bitwise AND System.out.println(&apos;a&amp;b = &apos; + (a &amp; b)); } } </pre> <p> <strong>Output:</strong> </p> <pre> a&amp;b=1 </pre> <p>Let&apos;s create another Java program and use Logical and Bitwise AND operators simultaneously.</p> <p> <strong>JavaOperators.java</strong> </p> <pre> public class JavaOperators { public static void main(String args[]) { int a = 58; //58 in binary is 111010 int b = 13; //13 in binary is 1101 System.out.println(a&amp;b); //returns 8 = 1000 int x = 10; System.out.println(x<30 && x<60); returns false } < pre> <p> <strong>Output:</strong> </p> <pre> 8 true </pre> <hr></30></pre></d)>

BitwiseAndExample.java

 public class BitwiseAndExample { public static void main(String args[]) { int a = 3; int b = 9; //bitwise AND System.out.println(&apos;a&amp;b = &apos; + (a &amp; b)); } } 

Producción:

 a&amp;b=1 

Creemos otro programa Java y usemos operadores AND lógicos y bit a bit simultáneamente.

JavaOperators.java

 public class JavaOperators { public static void main(String args[]) { int a = 58; //58 in binary is 111010 int b = 13; //13 in binary is 1101 System.out.println(a&amp;b); //returns 8 = 1000 int x = 10; System.out.println(x<30 && x<60); returns false } < pre> <p> <strong>Output:</strong> </p> <pre> 8 true </pre> <hr></30>