Vi isso em um comando e fiquei totalmente boiando, não soube nem criar um título melhor pro tópico…
Resolvi fazer o teste:
public class Testes{
public static void main(String[] args){
int x=1|2|3|4;
System.out.println(x);
}
}
E o retorno foi 7.
Mas de onde veio esse 7 ?
Amigo, isso é Operadores Bit-a-Bit, eles realizam suas operações sobre os bits de um número, e não sobre o seu valor.
O valor binário de 1 = 0001
O valor binário de 2 = 0010
O valor binário de 3 = 0011
O valor binário de 4 = 0100
O operador OR inclusivo (|), que retorna 0 caso ambos os bits valerem 0 e retorna 1 caso contrário.
0001|0010|0011|0100 = 0111
Resultado = 0111(Valor binário de 7) = 7
Para entender melhor, procure sobre operadores bit-a-bit e tabela decimal-binario.
vlw