The Bitwise operators are some of the C Programming Operator, which are used to perform bit operations. All the decimal values will be converted into binary values (sequence of bits i.e 0100, 1100, 1000, 1001 etc) and bitwise operator will work on these bits such as shifting them left to right or converting bit value from 0 to 1 etc. Below table shows the different Bitwise operators in C Programming and their meaning.

For example, Consider x = 6 and y = 8 and their values in binary form are

x = 0110

y = 1000

Bitwise Operators in C | Operator Meaning | Examples |
---|---|---|

& | Bitwise AND | X & Y = 0000 |

| | Bitwise OR | X | Y = 1110 |

^ | Bitwise exclusive OR | X ^ Y = 1110 |

~ | Bitwise complement | ~X = 00001001 (Bitwise Not operator will convert all 0 into 1.) |

<< | Shift left | X << 1 = 00001100 (Bits will move 1 step left. If we use 2 or 3 then they shift accordingly) |

>> | Shift right | Y >> 1 = 00000100 |

Let us see the Truth Table behind Bitwise Operators in C Programming Language

x |
y |
x & y |
X | y |
x ^ y |
---|---|---|---|---|

0 | 0 | 0 | 0 | 0 |

0 | 1 | 0 | 1 | 1 |

1 | 0 | 0 | 1 | 1 |

1 | 1 | 1 | 1 | 0 |

## Bitwise operators in C Example

Let us see one example, for better understanding. In this C Program, We are using two variables a and b and their values are 9 and 65. We are going to use these two variables to show you various Bitwise operations in C Language

**CODE**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* Bitwise operators in C Example */ #include <stdio.h> int main() { int a = 9, b = 65; printf(" Bitwise AND Operator a&b = %d \n", a & b); printf(" Bitwise OR Operator a|b = %d \n", a | b); printf(" Bitwise EXCLUSIVE OR Operator a^b = %d \n", a ^ b); printf(" Bitwise NOT Operator ~a = %d \n", a = ~a); printf(" LEFT SHIFT Operator a<<1 = %d \n", a << 1); printf(" RIGHT SHIFT Operator b>>1 = %d \n", b >> 1); return 0; } |

**OUTPUT**

**ANALYSIS**

In this program ,We declared 2 integers a and b and assigned the values 9 and 65. The binary form of 9 = 0001001 and 65 = 1000001.

Below printf statements will perform the bitwise operations on a and b then they will display the output

1 2 3 4 5 6 7 |
printf(" Bitwise AND Operator a&b = %d \n", a & b); printf(" Bitwise OR Operator a|b = %d \n", a | b); printf(" Bitwise AND Operator a^b = %d \n", a ^ b); printf(" Bitwise NOT Operator ~a = %d \n", a = ~a); printf(" LEFT SHIFT Operator a<<1 = %d \n", a << 1); printf(" RIGHT SHIFT Operator b>>1 = %d \n", b >> 1); |

Lets see the calculations

Bitwise AND Operation = a & b

0001001 & 1000001 = 0000001 = 1

Bitwise OR Operation = a || b

0001001 || 1000001 = 1001001 = 73

Bitwise Exclusive OR Operation = a ^ b

0001001 ^ 1000001 = 1001000 = 72

Left Shift Operation in Bitwise Operator = b >> 1

1000001 >> 1 = 0100000 = 32

Thank You for Visiting Our Blog

## Share your Feedback, or Code!!