Nesta seção, discutiremos os dois operadores mais importantes & e && em Java e veja também o principais diferenças entre lógica e operadores bit a bit junto com seus usos.
& Operador
O único operador AND ( & ) é conhecido como E bit a bit operador. Ele opera em um único bit. São necessários dois operandos. Um bit no resultado será 1 se e somente se ambos os bits correspondentes nos operandos forem 1. O resultado do operador pode ser qualquer número. Por exemplo:
uma = 01100010
b = 10111010
a&b = 00100010
Operador &&
Os operadores AND duplos (&&) são conhecidos como lógico E operadores. Geralmente é usado em loops e instruções condicionais. Geralmente é usado em expressões booleanas. O resultado de && é sempre 0 ou 1.
Diferença entre & e &&
A principal diferença entre os operadores && e & é que && suporta avaliações de curto-circuito, enquanto o operador & não.
Outra diferença é que && avaliará a expressão exp1 e retornará imediatamente um valor falso se exp1 for falso. Enquanto o operador & sempre avalia ambas as expressões (exp1 e exp2) antes de retirar uma resposta.
S. N. | Base | & Operador | Operador && |
---|---|---|---|
1 | Operador | É um operador AND bit a bit. | É um operador lógico AND. |
2 | Avaliação | Ele avalia o lado esquerdo e direito da expressão fornecida. | Ele avalia apenas os lados esquerdos da expressão fornecida. |
3 | Opera em | Ele opera em tipos de dados booleanos e também em bits. | Opera apenas no tipo de dados booleano. |
4 | Usos | Usado para verificar condições lógicas e também para mascarar certos bits, como bits de paridade. | Usado apenas para verificar as condições lógicas. |
5 | Exemplo | z = x e y | se (y > 1 && y > x) |
Vamos entender bit a bit e lógico e operador por meio de um programa Java.
LógicoAndExample.java
como ler um arquivo csv em java
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)); } }
Saída:
a&b=1
Vamos criar outro programa Java e usar operadores AND lógicos e bit a bit simultaneamente.
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>