Tutoriallearn.com
Easy Learning
Search Tutoriallearn.com :
| Operator | Purpose |
|---|---|
| & | Bitwise AND operation |
| | | Bitwise OR operation |
| ^ | Bitwise Exclusive OR operation |
| ~ | Bitwise unary NOT |
| >> | Shift right |
| >>> | Shift right zero fill |
| << | Shift left |
| &= | Bitwise AND assignment |
| |= | Bitwise OR assignment |
| ^= | Bitwise exclusive OR assignment |
| >>= | Shift right assignment |
| <<= | Shift left assignment |
| >>>= | Shift right zero fill assignment |
import java.lang.Math;
public class BitOp {
public static void main (String args[]){
int a = 9;
int b = 10;
int c = a & b;
System.out.println("Bitwise & (AND) operation:");
System.out.println(Integer.toBinaryString(a) + " & "+ Integer.toBinaryString(b)+" = "+
Integer.toBinaryString(c)+"\n");
c = a | b;
System.out.println("Bitwise | (OR) operation:");
System.out.println(Integer.toBinaryString(a) + " | "+ Integer.toBinaryString(b)+" = "+
Integer.toBinaryString(c)+"\n");
c = a ^ b;
System.out.println("Bitwise ^ (Exclusie-OR) operation:");
System.out.println(Integer.toBinaryString(a) + " ^ "+ Integer.toBinaryString(b)+" = "+
Integer.toBinaryString(c)+"\n");
c = ~a;
System.out.println("Bitwise Unary ~ (NOT) operation:");
System.out.println(" ~"+Integer.toBinaryString(a)+ " = "+ Integer.toString(c, 2)+
" (See the negative sign in the result)");
}
}
Bitwise & (AND) operation: 1001 & 1010 = 1000 Bitwise | (OR) operation: 1001 | 1010 = 1011 Bitwise ^ (Exclusive-OR) operation: 1001 ^ 1010 = 11 Bitwise Unary ~ (NOT) operation: ~1001 = -1010 (See the negative sign in the result)Following example is demonstrating Shift right (>>) and Shift Left (<<) operations. It is also demonstrating Shift right zero fill (>>>) operator.
import java.lang.Math;
public class BitOp {
public static void main (String args[]){
int a = 9;
int b = 2;
int m = -9;
int c = a >> 1; // Shift right by 1 bit
System.out.println("Bitwise >> (Shift Right) operation:");
System.out.println(Integer.toBinaryString(a) + " >> 1 "+ " = "+Integer.toBinaryString(c)+"\n");
c = b << 1; // Shift left by 1 bit
System.out.println("Bitwise << (Shift Left) operation:");
System.out.println(Integer.toBinaryString(b) + " << 1 " + " = "+Integer.toBinaryString(c)+"\n");
c = m >>> 1; // Unsigned Right Shift by 1 bit
System.out.println("Bitwise >>> (Unsigned Right Shift ) operation:");
System.out.println(Integer.toBinaryString(m) + " >>> 1 " + " = "+String.format("%32s", Integer.toBinaryString(c)).replace(' ', '0')+"\n");
}
}
Bitwise >> (Shift Right) operation: 1001 >> 1 = 100 Bitwise << (Shift Left) operation: 10 << 1 = 100 Bitwise >>> (Unsigned Right Shift ) operation: 11111111111111111111111111110111 >>> 1 = 01111111111111111111111111111011Following example is demonstrating Bitwise Assignment Operators &=, |=, ^=
import java.lang.Math;
public class BitOpAssin {
public static void main (String args[]){
int a = 9;
int b = 10;
System.out.println("a = "+Integer.toBinaryString(a));
System.out.println("b = "+Integer.toBinaryString(b));
System.out.println("Bitwise AND Assignment (&=) operation:");
System.out.println(Integer.toBinaryString(a) + " &= "+ Integer.toBinaryString(b));
a &= b;
System.out.println("Now value of a = "+ Integer.toBinaryString(a)+"\n");
int k = 9;
System.out.println("k = "+Integer.toBinaryString(k));
System.out.println("b = "+Integer.toBinaryString(b));
System.out.println("Bitwise OR Assignment (|=) operation:");
System.out.println(Integer.toBinaryString(k) + " |= "+ Integer.toBinaryString(b));
k |= b;
System.out.println("Now value of k = "+ Integer.toBinaryString(k)+"\n");
int m = 9;
System.out.println("m = "+Integer.toBinaryString(m));
System.out.println("b = "+Integer.toBinaryString(b));
System.out.println("Bitwise OR Assignment (^=) operation:");
System.out.println(Integer.toBinaryString(m) + " ^= "+ Integer.toBinaryString(b));
m ^= b;
System.out.println("Now value of m = "+ Integer.toBinaryString(m)+"\n");
}
}
a = 1001 b = 1010 Bitwise AND Assignment (&=) operation: 1001 &= 1010 Now value of a = 1000 k = 1001 b = 1010 Bitwise OR Assignment (|=) operation: 1001 |= 1010 Now value of k = 1011 m = 1001 b = 1010 Bitwise OR Assignment (^=) operation: 1001 ^= 1010 Now value of m = 11Following example is demonstrating Right Shift Assignment operator (>>=) and Left Shift Assignment operator (<<=).
import java.lang.Math;
public class BitOpShiftAssin {
public static void main (String args[]){
int a = 9;
int b = 2;
System.out.println("a = "+Integer.toBinaryString(a));
System.out.println("Bitwise Right Shift Assignment (>>=) operation:");
System.out.println(Integer.toBinaryString(a) + " >>= 1 ");
a >>= 1; // Shift right by 1 bit
System.out.println("Now value of a ="+Integer.toBinaryString(a));
System.out.println();
System.out.println("b = "+Integer.toBinaryString(b));
System.out.println("Bitwise Left Shift Assignment (<<=) operation:");
System.out.println(Integer.toBinaryString(b) + " <<= 1 ");
b <<= 1; // Shift left by 1 bit
System.out.println("Now value of b ="+Integer.toBinaryString(b));
}
}
a = 1001 Bitwise Right Shift Assignment (>>=) operation: 1001 >>= 1 Now value of a =100 b = 10 Bitwise Left Shift Assignment (<<=) operation: 10 <<= 1 Now value of b =100