Recomendado, 2023

Escolha Do Editor

Diferença entre & e &&

Os “&” e “&&” ambos são os operadores, usados ​​para avaliar as instruções condicionais. O operador & é um operador lógico e também bit a bit. O operador && é puramente um operador lógico. A diferença básica entre o operador & e && é que o operador & avalia ambos os lados da expressão enquanto, o operador && avalia apenas o lado esquerdo da expressão para obter o resultado final. Vamos entender as outras diferenças entre & e && com a ajuda do gráfico de comparação.

Gráfico de comparação

Base para ComparaçãoE&&
OperadorÉ um "Operador bit a bit".É um "operador lógico".
AvaliaçãoAvalia os lados esquerdo e direito da expressão.Apenas avalia o lado esquerdo da expressão.
Opera emEle opera em "tipo de dados booleano", bem como opera em "bits".Ele opera somente em "tipo de dados booleano".
UsarUse para verificar a condição lógica e também usado para mascarar certos bits, como bits de paridade.Usado apenas para verificar a condição lógica.

Definição de & (Bitwise AND)

Este operador '&' é usado como um operador lógico (&) e um operador bit a bit. Ele funciona em dados booleanos e binários. Quando o operador & é usado como operador lógico, resulta em “verdadeiro” se ambos os lados da expressão da avaliação forem verdadeiros, senão retorna “falso”. Ele permite que o compilador avalie o lado da expressão. Ou seja, mesmo que o lado esquerdo da expressão seja falso, ele avalia o lado direito da expressão.

Nos deixa entender isso com um exemplo.

 inta = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // saída falsa b = 5 

Aqui, ao avaliar o lado esquerdo da expressão (a == 6), resulta em false, o operador & então avalia o lado direito da expressão (b ++ == 6) como resultado, o valor de incrementos b.

Quando '&' é usado como um 'operador bit a bit', primeiro ele converte os dois operandos em formato binário e, em seguida, opera nele usando & operator, bit por bit. Após a operação, o resultado obtido é em formato binário, que é então convertido em decimal. Qualquer bit que seja 0 em qualquer um dos operandos resulta em 0. Se ambos os bits dos operandos forem 1, então o bit resultante é 1. O operador bit a bit é governado pela mesma tabela de verdade que por seu operador lógico.

Vamos ver o funcionamento bit a bit do operador.

 int a; a = 3 e 4; // 011 e 100 = 000 system.out.println ("a =" + a); // output a = 0 

Aqui, os valores decimais 3 e 4 são inicialmente convertidos em sua forma binária, e então o operador & bit a bit executa a operação & neles bit a bit. O resultado obtido é em forma binária, que é então convertido para a forma decimal novamente.

Definição de && (curto-circuito AND)

Este operador && funciona totalmente como um operador lógico. Ele opera somente no tipo de dados booleano. É também chamado de operador de curto-circuito. Como só verifica o lado esquerdo da expressão. Se o lado esquerdo da expressão resultar em falso, não se preocupará em avaliar o lado direito da expressão.

Nos permite entender o funcionamento do operador && com um exemplo.

 inta = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // saída falsa b = 4 

Aqui, como a condição (a == 6) é falsa, o operador && não avalia a expressão (b ++ == 6) como resultado, o valor de b não é incrementado.

Principais diferenças entre & e &&

  1. O operador & é um operador lógico e bit a bit, já que opera tanto em booleanos quanto em dados binários, enquanto o operador && é apenas um operador lógico, pois opera apenas em um tipo de dado booleano.
  2. O operador & avalia o lado da expressão para obter o resultado final, enquanto o operador && avalia apenas o lado esquerdo da expressão e, se for falso, nem avalia o lado direito da expressão.

Nota:

Ao avaliar o tipo de dados booleano, ambos os operadores resultam “true” somente se o operando for verdadeiro, senão retorna “false”.

Conclusão:

O operador & e &&, ambos são usados ​​para avaliar a condição booleana, enquanto o operador & também é usado para a operação bit a bit. Quando é necessário avaliar o lado da expressão, o operador & é usado, podemos usar o operador &&.

Top