Java provides 7 bitwise operators which act on individual bits.
Operator | Description | Example |
& Binary AND | It copies a bit to the result if it exists in both operands. | (A & B) = 12 means 0000 1100 |
| Binary OR | It copies a bit if it exists in either operand. | (A | B) = 61 means 0011 1101 |
^ Binary XOR | It copies the bit if it is set in one operand but not both. | (A ^ B) = 49 means 0011 0001 |
~ Binary One’s Complement | It is unary and has the effect of 'flipping' bits. | (~A ) = -61 means 1100 0011 in 2's complement form due to a signed binary number. |
<< Binary Left Shift | The left operand value is moved left by the number of bits specified by the right operand. | A << 2 = 240 means 1111 0000 |
>> Binary Right Shift | The left operand value is moved right by the number of bits specified by the right operand. | A >> 2 = 15 means 1111 |
>>> Shift right zero fill | The left operand value is moved right by the number of bits specified by the right operand and shifted values are filled up with zeros. | A >>>2 = 15 means 0000 1111 |