Olá pessoal, estou aprendendo java e estou com algumas dúvidas nos operadores lógicos. Entendi que eles geram true e false etc. Outrossim, ao estudar uma expressão, não entendi a explicação matemática ao usar eles.
Explico, na apostila que estou estudando eles trazem uma expressão matemática: 1 | 2 ^ 3 * 2 & 13 | 2.
Na explicação eles vão falando do que é executado primeiro e explicando os resultados.
1 - A análise é feita da esquerda para a direita; (Ok)
2 - O primeiro cálculo a ser executado é 3 * 2, que resulta em 6; (Ok)
3 - Em seguida, o resultado anterior é comparado com 13, uma operação & (E): 6 & 13, que resulta em 4; (como chegou em 4???)
4 - Agora é feita uma operação ^ (Ou exclusivo) com 2 (mais a esquerda) e o 4 da operação anterior. O resultado é 6; (novamente não entendi a lógica, é adição?)
5 - É executada, então, a operação | (Ou) mais a esquerda: 1 | 6 que resulta em 7; (hamm??)
6 - Por último, é executada a operação | (Ou): 7 | 2 que também resulta em 7; (considera a primeira expressão? qual a lógica?)
A mesma expressão acima poderia ser escrita da seguinte forma: ((1 | (2 ^ ((3 * 2) & 13))) | 2)