Na linguagem Java, os operadores unários “!” e “~” estão re...

Próximas questões
Com base no mesmo assunto
Q1655599 Programação
Na linguagem Java, os operadores unários “!” e “~” estão relacionados à operação lógica de negação, no entanto, eles diferem entre si porque o operador
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - “~” calcula o complemento do operando bit-a-bit.

Vamos entender melhor o assunto para que você possa compreender o porquê dessa alternativa ser a correta. Na linguagem Java, temos operadores que atuam em nível de bit, o que significa que eles operam diretamente sobre os bits individuais dos operandos. Isso é algo um pouco diferente do que as operações lógicas regulares que você pode estar acostumado, que operam com valores booleanos ou numéricos em um nível mais alto.

O operador ! é um operador lógico de negação, ou seja, ele inverte o valor de um operando do tipo booleano. Se o operando for true, o resultado será false, e vice-versa.

Por outro lado, o operador ~ é um operador de negação bit-a-bit. Isso significa que ele inverte cada bit do operando. Se um bit é 0, ele muda para 1, e se é 1, muda para 0. Isso é conhecido como complemento binário. Importante notar que este operador é aplicável somente a valores numéricos inteiros, como byte, short, int, e long, já que apenas esses tipos de dados são representados em bits na memória.

Com isso em mente, a alternativa correta é a letra C, pois ela corretamente identifica que o operador ~ calcula o complemento bit-a-bit do operando. As demais alternativas são incorretas, pois ou atribuem características erradas aos operadores, ou não compreendem o tipo de dado sobre o qual o operador atua.

Espero que esta explicação tenha ajudado a entender a diferença entre esses dois operadores e a natureza de suas operações. Compreender esses conceitos é muito importante para a programação em Java, especialmente quando você está lidando com manipulação de baixo nível de dados binários ou lógica booleana.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O operador ~ produz um complemento bit a bit de seu operando invertendo cada bit:

class OperadorExemplo {  

   public static void main (String args []) {  

      int a = 10;  

     int b = -10;  

      boolean c = true;  

      boolean d = false;  

      System.out.println (~a); // - 11 (Inverte o sinal e subtrai com 1)  

      System.out.println (~b); // 9 (Inverte o sinal e subtrai com 1)  

      System.out.println (!c); // false (oposto ao valor booleano)  

      System.out.println (!d); // true  

   }  

}  

Resposta correta letra (C)

Pra quem quiser saber mais, encontrei informações nesse site: https://qastack.com.br/programming/791328/how-does-the-bitwise-complement-operator-tilde-work

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo