The Bitwise operators in C are some of the Operators used to perform bit operations. All the decimal values will convert into binary values (sequence of bits, i.e., 0100, 1100, 1000, 1001, etc.). Next, the C bitwise operators will work on these bits, such as shifting them from left to right or converting bit values from 0 to 1.

The below table shows the different Bitwise operators in C Programming with example and their meanings. For example, Consider x = 6 and y = 8 and their values in binary form are: x = 0110 and y = 1000

C Bitwise Operators | Meaning | Examples |
---|---|---|

& | Bitwise AND | X & Y = 0000 |

| | Bitwise OR | X | Y = 1110 |

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

~ | complement | ~X = 00001001 (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 Programming Example

Let us see one example to better understand bitwise operators in C programming language. In this Program, We are using two variables, a and b, and their values are 9 and 65. Next, we will use these two variables to show you various operations.

We declared 2 integers in this program, a and b, and assigned the values 9 and 65. The binary form of 9 = 0001001 and 65 = 1000001. The below printf statements will perform the bitwise operations on a and b then they will display the Program output

#include <stdio.h> int main() { int a = 9, b = 65; printf(" AND a&b = %d \n", a & b); printf(" OR a|b = %d \n", a | b); printf(" EXCLUSIVE OR a^b = %d \n", a ^ b); printf(" NOT ~a = %d \n", a = ~a); printf(" LEFT SHIFT a<<1 = %d \n", a << 1); printf(" RIGHT SHIFT b>>1 = %d \n", b >> 1); return 0; }

Let’s see the calculations behind these Operators in this Programming.

AND Operation = a & b

0001001 & 1000001 = 0000001 = 1

OR Operation = a || b

0001001 || 1000001 = 1001001 = 73

Next, Exclusive OR Operation = a ^ b

0001001 ^ 1000001 = 1001000 = 72

Left Shift Operation = b >> 1

1000001 >> 1 = 0100000 = 32