Java defines various bit-wise operators, which work’s on bits and performs the bit-by-bit operation. It can be applied to the integer types, long, int, short, char, and byte.

Assume if a = 60 and b = 10; now in binary format they will be as follows −

a = 0011 1100 b = 0000 1010 ----------------- a&b = 0000 1000 a|b = 0011 1110 a^b = 0011 0110 ~a = 1100 0011

The following table lists the bitwise operators −

Assume integer variable A holds 60 and variable B holds 10 then −

Operator | Description | Example |
---|---|---|

& (bitwise and) | It returns bit by bit AND of input values, i.e, if both bits are 1, it gives 1, else it gives 0. | (A & B) will give 8 which is 0000 1000 |

| (bitwise or) | It returns bit by bit OR of input values, i.e, if either of the bits is 1, it gives 1, else it gives 0. | (A | B) will give 62 which is 0011 1110 |

^ (bitwise XOR) | It returns bit by bit XOR of input values, i.e, if corresponding bits are different, it gives 1, else it gives 0. | (A ^ B) will give 54 which is 0011 0110 |

~ (bitwise compliment) | It returns the one’s complement representation of the input value, i.e, with all bits inverted, which means it makes every 0 to 1, and every 1 to 0. | (~A ) will give -61 which is 1100 0011 in 2’s complement form due to a signed binary number. |

<< (left shift) | Shifts the bits of the number to the left and fills 0 on voids left as a result. Similar effect as of multiplying the number with some power of two. | A << 2 will give 240 which is 1111 0000 |

>> (right shift) | Shifts the bits of the number to the right and fills the voids left with the sign bit (1 in case of negative number and 0 in case of positive number). The leftmost bit and a depends on the sign of initial number. Similar effect as of dividing the number with some power of two. | A >> 2 will give 15 which is 1111 |

>>> (zero fill right shift) | Shift right zero fill operator. The left operands value is moved right by the number of bits specified by the right operand and shifted values are filled up with zeros. | A >>>2 will give 15 which is 0000 1111 |