Java pipe и амперсанд с целыми числами

Я искал в Интернете, когда наткнулся на фрагмент кода, который выглядел так: return c.getX() | c.getY() | c.getZ();
Методы доступа возвращают целые числа, поэтому я задумался: Что значит, если вы поместите & или | между целыми числами?
Итак, я попробовал сам~

for (int x = 0; x < 5; x++)
  for (int z = 0; z < 5; z++) {

    System.out.printf("%s | %s = %s\t%s & %s = %s\n", x, z, x | z, x, z, x & z);
  }

Вот что у меня получилось~

0 | 0 = 0	0 & 0 = 0
0 | 1 = 1	0 & 1 = 0
0 | 2 = 2	0 & 2 = 0
0 | 3 = 3	0 & 3 = 0
0 | 4 = 4	0 & 4 = 0
1 | 0 = 1	1 & 0 = 0
1 | 1 = 1	1 & 1 = 1
1 | 2 = 3	1 & 2 = 0
1 | 3 = 3	1 & 3 = 1
1 | 4 = 5	1 & 4 = 0
2 | 0 = 2	2 & 0 = 0
2 | 1 = 3	2 & 1 = 0
2 | 2 = 2	2 & 2 = 2
2 | 3 = 3	2 & 3 = 2
2 | 4 = 6	2 & 4 = 0
3 | 0 = 3	3 & 0 = 0
3 | 1 = 3	3 & 1 = 1
3 | 2 = 3	3 & 2 = 2
3 | 3 = 3	3 & 3 = 3
3 | 4 = 7	3 & 4 = 0
4 | 0 = 4	4 & 0 = 0
4 | 1 = 5	4 & 1 = 0
4 | 2 = 6	4 & 2 = 0
4 | 3 = 7	4 & 3 = 0
4 | 4 = 4	4 & 4 = 4

Я пытался найти закономерность, но не мог прийти ни к какому выводу. Может ли кто-нибудь сказать мне образец и использование этого?


person Kaelinator    schedule 05.12.2016    source источник
comment
Это побитовые операции.   -  person SLaks    schedule 05.12.2016