Pipe (|) operator in Java
Solution 1:
It's a bitwise OR operation. It's modifying things at a binary level.
011 3
in binary: | 100 in decimal: | 4
___ ___
111 7
Open Windows calc using scientific mode. You can flip between decimal and binary (and hex) and perform bitwise operations including or, and, xor, etc.
To do a bitwise or in your head or on paper, compare each digit of the same ordinal. If either number is a 1, the result at that ordinal will be 1.
Solution 2:
The operator |
does a "bitwise OR". The output of bitwise OR on two bits is 1 if either bit is 1 or 0 if both bits are 0. Bitwise OR on two numbers just does a bitwise OR on each bit individually.
Heres how 3|4
works:
3: 00000011
4: 00000100
--------------
3|4: 00000111 = 7
Solution 3:
It's doing a bitwise OR
operation, and 3 OR
4 is 7.
See here: http://en.wikipedia.org/wiki/Bitwise_OR#OR