The Bitwise operators in Java programming are used to perform bit operations. In Java bitwise operators, all the decimal values will convert into binary values (sequence of bits, i.e., 0100, 1100, 1000, 1001, etc.). The Bitwise Operators will work on these bits, such as shifting them left to right or converting bit values from 0 to 1, etc.
The table below shows the different Java Bitwise operators and their meanings. For example, Consider x = 6 and y = 8, and their values in binary form are
x = 0110
y = 1000
Java Bitwise Operators | Meaning | Examples |
---|---|---|
& | AND | X & Y = 0000 |
| | OR | X | Y = 1110 |
^ | exclusive OR | X ^ Y = 1110 |
~ | complement | ~X = 00001001 (The Not operator will convert all 0 into 1). Remember, the Compliment of N will be -(N + 1) |
<< | Shift left | X << 1 = 00001100 (Bits will move 1 step left. If we use 2 or 3, then they shift accordingly) |
>> | Shift right | Y >> 1 = 00000100 |
Let us see the Truth Table behind Bitwise Operators in Java Programming Language.
x | y | x & y | X | y | x ^ y |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
Bitwise operators in Java example
This example helps to understand the Java Bitwise Operators practically. This program allows the user to enter two integer variables, a and b, and we will use these two variables to show various operations.
import java.util.Scanner; public class BitwiseOperators { private static Scanner sc; public static void main(String[] args) { int a, b; sc = new Scanner(System.in); System.out.println(" Please Enter two integer Value: "); a = sc.nextInt(); b = sc.nextInt(); System.out.format(" AND: %d & %d = %d \n", a, b, a & b); System.out.format(" OR : %d | %d = %d \n", a, b, a | b); System.out.format(" EXCLUSIVE OR: %d ^ %d = %d \n", a, b, a ^ b); System.out.format(" NOT : ~%d = %d \n", a, ~a); System.out.format(" LEFT SHIFT: %d << 1 = %d \n", a, a << 1); System.out.format(" RIGHT SHIFT: %d >> 1 = %d \n", b, b >> 1); } }
The first three statements in this example will ask the user to enter integer values a and b. Next, we will assign the user input values to the variables.
The following System.out.format statements will perform all the table operations on a and b, then display the output.
In this Java Bitwise Operators example, we assigned the values as a = 12 and b = 25. The binary form of 12 = 00001100 and 25 = 00011001.
Let us see the Java calculations.
AND Operation = a & b
00001100 & 00011001 ==> 00001000 = 8
OR Operation = a || b
00001100 || 00011001 ==> 00011101 = 29
Next, the Exclusive OR Operation = a ^ b
00001100 || 00011001 ==> 00010101 = 21
Complement Operation = ~a
As we said before, the complement of N will be -(N + 1). It means – (12 + 1) = -13
Left Shift = a << 1
00001100 << 1 = 00011000 = 24
Right Shift = b >> 1
00011001 >> 1 = 00001100 = 12