## C – Bit wise Operators

#### 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 =1111111111111111111111111111111111111111111111111111111111010111
.. ..= -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 0000000000000000000000000000000000000000000000000000000000101000. 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.
```#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 = %dn",AND_opr );
printf("OR_opr value = %dn",OR_opr );
printf("NOT_opr value = %dn",NOT_opr );
printf("XOR_opr value = %dn",XOR_opr );
printf("left_shift value = %dn", m << 1);
printf("right_shift value = %dn", 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

……

#### Continue on types of C operators:

• Click on each operators name below to display example programs.
 S.no Types of Operators Description 1 Arithmetic_operators These are used to perform mathematical calculations like addition, subtraction, multiplication, division and modulus 2 Assignment operators These are used to assign the values for the variables in C programs. 3 Relational operators These operators are used to compare the value of two variables. 4 Logical operators These operators are used to perform logical operations on the given two variables. 5 Bit wise operators These operators are used to perform bit operations on given two variables. 6 Conditional (ternary) operators Conditional operators return one value if condition is true and returns another value is condition is false. 7 Increment/decrement operators These operators are used to either increase or decrease the value of the variable by one. 8 Special operators &, *, sizeof( ) and ternary operators

.