QUestão de concurso sobre JAVA

Essa questão da prova de técnico de informática da Defensoria do tocantins.

50 - Assinale a alternativa INCORRETA acerca dos operadores lógicos da linguagem de programação Java

(A) <, <, >> são operadores de deslocamento de bits.
(B) ~ é operador lógico de negação.
© &, |, ^ são operadores lógicos E, OU e OU-exclusivo.
(D) ==, != são operadores de igualdade e diferença.

Beleza, a errada é a A, mas to em dúvida nessa B, de tudo que pesquisei atribui como operador de negação o ! . Já o ~ é operador Incremento e Inversão, aumenta o número em uma unidade e inverte o seu sinal…isso é considerado negação ? por favor me ajudem a entender isso. Obrigado!

cara a A ta errada mesmo? para mim << e >> são operadores de deslocamento mesmo…

e me parece que a B esta errada…

A letra A está errada porque o < e > não são de deslocamento de bits e sim de comparação. Agora o “~” eu nunca usei … , até onde sei o “!” que é o de negação

No gabarito ta a A, mas tem razão acho q foi erro dos << na prova estarem separados por virgula, nao tem sentido a opção ter dois operadores iguais: < , < , >> …deveria ser <<,>>

Pois é. Achei que o erro era < , < , >>

Mas nunca vi o ~ para negação.

Tem certeza que a errada é a A ?

No gabarito preliminar sim, quero dar uma sacada e ver se cabe recurso!

PROVA:
http://www.copese.uft.edu.br/defensoria2012_arquivos/IntermediarioProva/defensoria2012_prova_tecnico_informatica.pdf

GABARITO: http://www.copese.uft.edu.br/defensoria2012_arquivos/IntermediarioGabaritoProv/gabaritoProvisorio_tecnico_informatica.pdf

[quote=LeandroGalvao]Essa questão da prova de técnico de informática da Defensoria do tocantins.

50 - Assinale a alternativa INCORRETA acerca dos operadores lógicos da linguagem de programação Java

(A) <, <, >> são operadores de deslocamento de bits.
(B) ~ é operador lógico de negação.
© &, |, ^ são operadores lógicos E, OU e OU-exclusivo.
(D) ==, != são operadores de igualdade e diferença.

Beleza, a errada é a A, mas to em dúvida nessa B, de tudo que pesquisei atribui como operador de negação o ! . Já o ~ é operador Incremento e Inversão, aumenta o número em uma unidade e inverte o seu sinal…isso é considerado negação ? por favor me ajudem a entender isso. Obrigado![/quote]

Defensoria tem que saber operadores do Java? Defensoria não é coisa de advogado?

O operador ~ não incrementa e inverte o sinal, apenas inverte os bits. É que, ao invertê-los, causa a sensação de ter incrementado uma unidade para depois inverter o sinal.

No final dá no mesmo, mas, computacionalmente, isso faz uma boa diferença.

Então no caso está certo mesmo? A negação de um inteiro é o inverso dele?

Sim e não. Você se refereriu ao inverso como sendo a inversão dos bits, mas o inverso de x é 1/x. Seu raciocínio de negação sendo a inversão dos bits está correta, o nome que deu a isso é que não está.

O ~ representa o complemento para um. Basicamente inverte cada bit de um número.

Então a opção b está errada ?

Pelo Deitel 8 edição, onde fala de operadores lógicos nem é citado o ~ , o operador de negação é o ! .
Ele só trata o ~ o apêndice n, encontrado na web e em nenhum momento fala ser de negação, e sim como o Luizao falou, complemento de bits, ou complemento para um.
Então, vale a pena entrar com recurso alegando a inveracidade da letra b também?

Nunca ouvi falar desse til como negação…

Negação é exclamação, e acredito que a Sun não colocaria dois símbolos diferentes pra fazer a mesma coisa né…

:roll:

Cada operador faz uma coisa diferente. O “~” está associado a operações com os bits e o “!” a operações booleanas.

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

Então a b está correta mesmo? O ~ é um operador lógico de negação assim como o ! só que para bits ?