logo

Diferença entre & e && em Java

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.

Diferença entre & e && em Java

& 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 &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)); } } 

Saída:

 a&amp;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&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>