The Programming Gurus

Bitwise Operators In C


Bit wise operators in C:
  • These operators are used to perform bit operations. Decimal values are converted into binary values which are the sequence of bits and bit wise operators work on these bits.
  • Bit wise operators in C language are & (bitwise AND), | (bitwise OR), ~ (bitwise OR), ^ (XOR), << (left shift) and >> (right shift).

Truth table for bit wise operation Bit wise operators:

x y  x|y x & y x ^ y Operator symbol Operator name
0 0 0 0 0 & Bitwise AND
0 1 1 0 1 | Bitwise OR
1 0 1 0 1 ~ Bitwise NOT
1 1 1 1 0 ^ XOR
  << Left Shift
>> Right Shift
  • Consider x=40 and y=80. Binary form of these values are given below.
  • x = 00101000
    y= 01010000
  • All bit wise operations for x and y are given below.
  • x&y = 00000000 (binary) = 0 (decimal)
    x|y = 01111000 (binary) = 120 (decimal)
    ~x = 11111111111111111111111111 11111111111111111111111111111111010111 = -41 (decimal)
    x^y = 01111000 (binary) = 120 (decimal)
    x << 1 = 01010000 (binary) = 80 (decimal)
    x >> 1 = 00010100 (binary) = 20 (decimal)

Note:
  • Bit wise NOT : Value of 40 in binary is 00000000000000000000000000000000 00000000000000000010100000000000. So, all 0′s are converted into 1′s in bit wise NOT operation.
  • Bit wise left shift and right shift : In left shift operation “x << 1 “, 1 means that the bits will be left shifted by one place. If we use it as “x << 2 “, then, it means that the bits will be left shifted by 2 places.

Example program for bit wise operators in C:
  • In this example program, bit wise operations are performed as shown above and output is displayed in decimal format.
Code:
#include <stdio.h>

int main()
 {
 int m = 40,n = 80,AND_opr,OR_opr,XOR_opr,NOT_opr ;
 AND_opr = (m&n);
 OR_opr = (m|n);
 NOT_opr = (~m);
 XOR_opr = (m^n);
 printf("AND_opr value = %d\n",AND_opr );
 printf("OR_opr value = %d\n",OR_opr );
 printf("NOT_opr value = %d\n",NOT_opr );
 printf("XOR_opr value = %d\n",XOR_opr );
 printf("left_shift value = %d\n", m << 1);
 printf("right_shift value = %d\n", m >> 1);
Output:
AND_opr value = 0
OR_opr value = 120
NOT_opr value = -41
XOR_opr value = 120
left_shift value = 80
right_shift value = 20
0 Comments For "Bitwise Operators In C"

Back To Top