Operador bit a bit

2 respostas
A

Pessoal, pensei que havia entendido mas não estou conseguindo resolver uma questão boba do Dan.

int a = 1 | 2 ^ 3 & 5; int b = ((1 | 2) ^ 3) & 5; int c = 1 | (2 ^ (3 & 5));
System.out.print(a + “,” + b + “,” + c);

Eu faço estas operações e chego ao resultado:
0,0,3
Mas se eu executar esse negócio a saida será :
3,0,3

Estou errando a precedencia dos operadores?

int a = 1 | 2 ^ 3 & 5; 001 | 010 = 011 = 3 011 ^ 011 = 000 = 0 000 & 101 = 000 = 0

Aonde estou errando?

2 Respostas

Java_Vinicius_Machin

Angela a questão eh justamente precedência!!!
seguindo a tabela abaixo vc vai chegar ao resultado correto.


& Operador lógico e bit a bit
^ Ou exclusivo (xor) bit a bit
| Operador lógico ou bit a bit
&& Operador lógico e condicional
|| Operador lógico ou condicional

Ah e soh pra lembrar o ~ ( operador de negação ou inversão como vc quiser) tem sua precedência bem mais alta, mas ele eh um operador unário.
[]´s

A

:smiley:
Valeu Vinicius!!! Agora deu certo.

Criado 9 de março de 2005
Ultima resposta 9 de mar. de 2005
Respostas 2
Participantes 2