Bitwise Operators in C Programming

In a C programming language Bitwise operator works on bits and perform bit-by-bit operation. There are following bitwise operators in C:-

Operator Description Example
& Binary AND Operator   a & b
| Binary OR Operator a| b
^ Binary XOR Operator  a^b
~ Binary One’s Complement Operator is unary ~a
<<  Binary Left Shift Operator a<<b
>>  Binary Right Shift Operator a>>b

The truth tables for &, |, and ^ is as follows –

a b a & b a | b a ^ b
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Assume A = 60 and B = 13 in binary format, they will be as follows −

               A in binary     = 0011 1100         (60)                     

              B in binary     = 0000 1101          (13)

Bitwise AND (&)

                      A      = 0011 1100         (60)                

          &         B      = 0000 1101          (13)

———————————————————

                                0000 1100           (12)

Bitwise OR (|)

                      A      = 0011 1100         (60)                

          |          B      = 0000 1101          (13)

———————————————————

                                0011 1101           (61)

Bitwise XOR (|)

                      A      = 0011 1100         (60)                

          ^         B      = 0000 1101          (13)

———————————————————

                                0011 0001           (49)

Binary Left Shift Operator

Left shift operator shift all the bits in a left direction to specified number of times.

i=16 //0001 0000

Example:

Binary Right Shift Operator

Left shift operator shift all the bits in a left direction to specified number of times.

int i = 16;                    // 0001 0000

i = i>>2;                      // 0000 0100  (shift right 2 bits, last 2 bits will be lost, and 2 zero add in front)

Example

Output

Exapmle:  Write a program to demonstrate Bitwise operator.

OUTPUT