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.
& 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 && b == 20) System.out.println('true'); else System.out.println('false'); int c=78, d=90; if (a > c && 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('a&b = ' + (a & b)); } } </pre> <p> <strong>Output:</strong> </p> <pre> a&b=1 </pre> <p>Let'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&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('a&b = ' + (a & b)); } }
Producción:
a&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&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>
30>