[RESOLVIDO] - int algumaCoisa = 8 | 3;

1 resposta
Gianetti

Dúvida o que significa o pipe no meio destes dois valores inteiros, vi que quando o primeiro é maior que o segundo ele soma, quando não a variavel fica com o segundo valor, quando são iguais fica o valor, funciona como um OU?

1 Resposta

pmlm

Funciona como um ou, bit a bit. O facto de somar foi apenas coincidência. Tanto que a operação é comutativa, ou seja a|b é igual a b|a.

Para compreender o que se processa é necessário que se saiba numeração binária. Neste caso:
8 é 1000
3 é 0011

O resultado é um OU, bit a bit, que dá 1011, ou seja 11 decimal.

Outros exemplos:

6 -> 0110
3 -> 0011
Resultado: 0111 -> 7

7 -> 0111
3 -> 0011
Resultado: 0111 -> 7

Criado 19 de janeiro de 2012
Ultima resposta 19 de jan. de 2012
Respostas 1
Participantes 2