Home Java Bitwise Operators

Bitwise Operators in Java

Beginner ⏱ 9 min read Updated: Jun 2026

Bitwise operators in Java are used to perform operations on individual bits of integer values. These operators work directly with the binary representation of numbers.

Bitwise operators are commonly used in areas such as low-level programming, encryption, networking, graphics, and performance optimization.

What are Bitwise Operators in Java?

Bitwise operators are special operators that perform operations at the binary level. They compare or modify individual bits of integer values.

In Java, bitwise operations can be performed on data types such as byte, short, int, and long.

For example, the number 5 is stored in binary form as 0101. Bitwise operators perform operations on these binary digits.

💡
Key Point: Bitwise operators work on bits (0 and 1) instead of complete numeric values.

Syntax of Bitwise Operators in Java

The basic syntax of using bitwise operators is:

Syntax
value1 operatorvalue2;

Example of Bitwise Operator in Java

Example
public class Main {
    public static void main(String[] args) {
        int a = 5;
        int b = 3;
        System.out.println(a & b);
    }
}
Output
1

Types of Bitwise Operators in Java

Java provides different bitwise operators to perform operations on binary values.

  • Bitwise AND Operator (&)
  • Bitwise OR Operator (|)
  • Bitwise XOR Operator (^)
  • Bitwise Complement Operator (~)
  • Left Shift Operator (<<)
  • Right Shift Operator (>>)
  • Unsigned Right Shift Operator (>>>)

Java Bitwise Operators Table

Operator Name Description
& Bitwise AND Returns 1 when both bits are 1
| Bitwise OR Returns 1 when any bit is 1
^ Bitwise XOR Returns 1 when bits are different
~ Bitwise NOT Reverses each bit
<< Left Shift Shifts bits to the left
>> Right Shift Shifts bits to the right
>>> Unsigned Right Shift Shifts bits without preserving sign

Bitwise AND Operator (&) in Java

The bitwise AND operator (&) compares each bit of two numbers. It returns 1 only when both corresponding bits are 1. Otherwise, it returns 0.

Bitwise AND Example

Consider two numbers:

  • 5 = 0101
  • 3 = 0011
  • Result = 0001 = 1
Example
int a =  5;
int b = 3;
System.out.println(a & b);
Output
1

Bitwise OR Operator (|) in Java

The bitwise OR operator (|) compares each bit of two numbers. It returns 1 if any one of the corresponding bits is 1.

Bitwise OR Example

  • 5 = 0101
  • 3 = 0011
  • Result = 0111 = 7
Example
int a =  5;
int b = 3;
System.out.println(a | b);
Output
7

Bitwise XOR Operator (^) in Java

The bitwise XOR operator (^) compares two bits and returns 1 only when both bits are different.

Bitwise XOR Example

  • 5 = 0101
  • 3 = 0011
  • Result = 0110 = 6
Example
int a = 5;
int b = 3;
System.out.println(a ^ b);
Output
6

Bitwise NOT Operator (~) in Java

The bitwise NOT operator (~) is a unary operator that reverses all bits of a number. It changes 0 bits into 1 and 1 bits into 0.

It is also known as the complement operator.

Example
int number = 5;
System.out.println(~number);
Output
-6

Left Shift Operator (<<) in Java

The left shift operator (<<) shifts the bits of a number towards the left by a specified number of positions.

Each left shift operation generally multiplies the value by 2.

Example
int number = 5;
 System.out.println(number << 1);
Output
10

Right Shift Operator (>>) in Java

The right shift operator (>>) shifts the bits of a number towards the right. It preserves the sign bit of the number.

Example
int number =  10;
 System.out.println(number >> 1);
Output
5

Unsigned Right Shift Operator (>>>) in Java

The unsigned right shift operator (>>>) shifts bits towards the right and fills the empty spaces with zeros.

Example
int number =  16;
 System.out.println(number >>> 2);
Output
4

Bitwise Operators Truth Table in Java

Bitwise AND (&) Truth Table

Bit 1 Bit 2 Result
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise OR (|) Truth Table

Bit 1 Bit 2 Result
0 0 0
0 1 1
1 0 1
1 1 1

Bitwise XOR (^) Truth Table

Bit 1 Bit 2 Result
0 0 0
0 1 1
1 0 1
1 1 0

Advantages of Bitwise Operators in Java

Faster Operations

Bitwise operations are performed directly on binary data, making them efficient for low-level programming.

Memory Efficient

They help optimize memory usage by manipulating individual bits.

Hardware Control

Bitwise operators are useful when working with hardware-level programming.

Data Manipulation

They are used for encryption, compression, and network programming.

Applications of Bitwise Operators in Java

  • Performing low-level programming operations.
  • Working with binary data and flags.
  • Implementing encryption algorithms.
  • Optimizing memory usage.
  • Developing games and graphics applications.

Common Mistakes While Using Bitwise Operators

  • Confusing logical operators (&&, ||) with bitwise operators (&, |).
  • Forgetting that bitwise operators work on binary representation.
  • Using bitwise operations without understanding binary values.
  • Applying shift operators with incorrect shift amounts.

Difference Between Logical Operators and Bitwise Operators

Logical Operators Bitwise Operators
Used with boolean values. Used with binary bits.
Example: &&, || Example: &, |, ^
Returns true or false. Returns numeric results.

Summary

Bitwise operators in Java are used to perform operations on individual bits of integer values. They work directly with binary representation and are useful for optimizing programs.

Java provides several bitwise operators including AND (&), OR (|), XOR (^), NOT (~), left shift (<<), right shift (>>), and unsigned right shift (>>>).

Understanding bitwise operators helps developers work with advanced concepts like data manipulation, encryption, and system-level programming.