Python Bitwise Operator

What is a bitwise operator?

We will say that operator is a bitwise operator if its result is based on the bits representation of its integer operands. In other words, python bitwise operator performs its operation on its integer operands at a bit level.

The python programing language has 6 bitwise operators :

Let's what of those Python bitwise operators do

NOT Operator : ~A

The simplest python bitwise operator is the NOT operator, denoted by the symbol ~.

The NOT operator is the unary operator - In other words, the NOT operator takes only one integer value for its operation.

What the ~A do?
The n'th bit of the result of NOT operator is 0 if corresponding bit of A is 1, and 1 if the corresponding bit of A is 0. In other words, the result is the complement of A - the number you get by switching each 1 for a 0 and each 0 for a 1.

We can write this information in the following truth table :

The truth table of NOT
A ~A
0 1
1 0

Samples of NOT Operator

 
    A  = 00000001
    ~A = 11111110
    
 
     A  = 01100110
     ~A = 10011001
    
 
    A  = 00110101
    ~A = 11001010
    
 
    A  = 00110101
    ~A = 11001010
    

AND Operator : A & B

The AND operator is denoted by the symbol &.

The AND operator is the binary operator - In other words, the AND operator takes 2 integer values for its operation.

What the A & B do?
The n'th bit of the result of AND operator is 1 if the corresponding bit of A AND of B is 1, otherwise it's 0.

We can write this information in the following truth table :

The truth table of AND
A B A & B
0 0 0
0 1 0
1 0 0
1 1 1

Samples of AND Operator

 
    A     = 10001001
    B     = 01011011
    A & B = 00001001
    
 
    A     = 11000011
    B     = 01011010
    A & B = 01000010
    
 
    A     = 11110000
    B     = 00111100
    A & B = 00110000
    
 
    A     = 11001100
    B     = 00001111
    A & B = 00001100
    

OR Operator : A | B

The OR operator is denoted by the symbol |.

The OR operator is the binary operator - In other words, the OR operator takes 2 integer values for its operation.

What the A | B do?
The n'th bit of the result of OR operator is 1 if the corresponding bit of A OR of B is 1, otherwise it's 0.

We can write this information in the following truth table :

The truth table of OR
A B A | B
0 0 0
0 1 1
1 0 1
1 1 1

As we can see in the truth table, There is another way to describe the OR operator The n'th bit of the result of OR operator is 0 only if the corresponding bit of A AND of B is 0, otherwise it's 1.

Samples of OR Operator

 
    A     = 10001001
    B     = 01011011
    A | B = 11011011
    
 
    A     = 11000011
    B     = 01011010
    A | B = 11011011
    
 
    A     = 11110000
    B     = 00111100
    A | B = 11111100
    
 
    A     = 11001100
    B     = 00001111
    A | B = 11001111
    

XOR Operator : A ^ B

The XOR operator is denoted by the symbol ^.

The XOR operator is the binary operator - In other words, the XOR operator takes 2 integer values for its operation.

What the A ^ B do?
The n'th bit of the result of XOR operator is 1 if the corresponding bit of A and B are different, and 0 if they are identical (if both are 0 or both are 1).

We can write this information in the following truth table :

The truth table of XOR
A B A ^ B
0 0 0
0 1 1
1 0 1
1 1 0

Samples of XOR Operator

 
    A     = 10001001
    B     = 01011011
    A ^ B = 11010010
    
 
    A     = 11000011
    B     = 01011010
    A ^ B = 10011001
    
 
    A     = 11110000
    B     = 00111100
    A ^ B = 11001100
    
 
    A     = 11001100
    B     = 00001111
    A ^ B = 11000011
    

SHIFT LEFT Operator : A << B

The SHIFT LEFT operator is denoted by the symbol <<

The SHIFT LEFT operator is the binary operator - In other words, the SHIFT LEFT operator takes 2 integer values for its operation.

What the A << B do?
The result of this expression is A with the bits shifted to the left by B places. The new bits inserted in the right side are zero.

Samples of SHIFT LEFT Operator

 
    00000001 << 0 = 00000001
    00000001 << 1 = 00000010
    00000001 << 2 = 00000100
    00000001 << 5 = 00100000
    
   
    10001001 << 0 = 10001001
    10001001 << 1 = 00010010
    10001001 << 2 = 00100100
    10001001 << 5 = 00100000
    

SHIFT RIGHT Operator : A >> B

The SHIFT RIGHT operator is denoted by the symbol >>

The SHIFT RIGHT operator is the binary operator - In other words, the SHIFT RIGHT operator takes 2 integer values for its operation.

What the A >> B do?

The result of this expression is A with the bits shifted to the right by B places. The new bits inserted in the left side are the left most bit of A

Samples of SHIFT LEFT Operator

 
    10000000 << 0 = 10000000
    10000000 << 1 = 11000000
    10000000 << 2 = 11100000
    10000000 << 5 = 11111100
    
 
    01000000 << 0 = 01000000
    01000000 << 1 = 00100000
    01000000 << 2 = 00010000
    01000000 << 5 = 00000010