Java Bitwise Operators

The Java Bitwise Operators allow access and modification of a particular bit inside a section of the data. It can be applied to integer types and bytes, and cannot be applied to float and double.

OperatorMeaningWork
&Binary AND OperatorThere are two types of AND operators in Java: the logical && and the binary &. Binary & operator work very much the same as logical && operators works, except it works with two bits instead of two expressions. The "Binary AND operator" returns 1 if both operands are equal to 1.
|Binary OR OperatorLike "AND operators ", Java has two different "OR" operators: the logical || and the binary |. Binary | Operator work similar to logical || operators works, except it, works with two bits instead of two expressions. The "Binary OR operator" returns 1 if one of its operands evaluates as 1. if either or both operands evaluate to 1, the result is 1.
^Binary XOR OperatorIt stands for "exclusive OR" and means "one or the other", but not both. The "Binary XOR operator" returns 1 if and only if exactly one of its operands is 1. If both operands are 1, or both are 0, then the result is 0.
~Binary Complement Operator
<<Binary Left Shift Operator
>>Binary Right Shift Operator
>>>Shift right zero fill operator

Program to Show Bitwise Operators Works

Example:
public class bitwiseop {
 public static void main(String[] args) {
  //Variables Definition and Initialization
  int num1 = 30, num2 = 6, num3 =0;

  //Bitwise AND
  System.out.println("num1 & num2 = " + (num1 & num2));
  
  //Bitwise OR
  System.out.println("num1 | num2 = " + (num1 | num2) );
  
  //Bitwise XOR
  System.out.println("num1 ^ num2 = " + (num1 ^ num2) );
  
  //Binary Complement Operator
  System.out.println("~num1 = " + ~num1 );

  //Binary Left Shift Operator
  num3 = num1 <<  2;
  System.out.println("num1 << 1 = " + num3 );

  //Binary Right Shift Operator
  num3 = num1 >>  2;
  System.out.println("num1 >> 1  = " + num3 );

  //Shift right zero fill operator
  num3 = num1 >>> 2;
  System.out.println("num1 >>> 1 = " + num3 );
  
 }
}
Output:
num1 & num2 = 6
num1 | num2 = 30
num1 ^ num2 = 24
~num1 = -31
num1 << 1 = 120
num1 >> 1  = 7
num1 >>> 1 = 7