# Bitwise operators in C | Bitwise AND in C | Bitwise OR in C | Bitwise XOR in C | Bitwise complement in C | Bitwise left shift in C | Bitwise right shift in C

Bitwise operators work with the binary form of numbers in C. There are six bitwise operators provided by C .

## 1. Bitwise AND in C

Bitwise AND operator (&) works as follows

Numeric values are converted into binary form and then individual bits of values are applied bitwise AND operator.

If any input is 0, output is 0.

If all inputs are 1, output is 1.

### Program for bitwise AND operator in C

```#include<stdio.h>
int main()
{
int a=10,b=7,c;
c=a&b;
printf("\nc=%d",c);
return(0);
}```
Output
`c=2`

In the above program, variable a contains 10 and b contains 7, After converting these values in binary form, bitwise AND  is applied as follows:
a=10       is represented in bitwise form as  1010
b=7
is represented in bitwise form as  0111

a&b        will generate                                      0010

After converting 0010 into decimal form, we get 2, so value of a&b would be 2.

## 2. Bitwise OR in C

Bitwise OR operator (|) works as follows

Numeric values are converted into binary form and then individual bits of values are applied bitwise OR operator.

If any input is 1, output is 1.

If all inputs are 0, output is 0.

### Program for bitwise OR  operator in C

```#include<stdio.h>
int main()
{
int a=10,b=7,c;
c=a|b;
printf("\nc=%d",c);
return(0);
}```
Output
`c=15`

Description

Bitwise OR will be applied as follows:
a=10       is represented in binary form as   1010
b=7         is  represented in bitwise form as  0111
a|b           will generate                                       1111
After converting 1111 into decimal form, we get 15.

## 3. Bitwise XOR (^)

Bitwise XOR operator (^) works as follows

Numeric values are converted into binary form and then individual bits of values are applied bitwise XOR operator.

If odd number of  inputs are 1, output is 1.

### Program for bitwise XOR  operator in C

```#include<stdio.h>
int main()
{
int a=10,b=7,c;
c=a^b;
printf("\nc=%d",c);
return(0);
}```
Output
`c=13`

a=10       is represented in bitwise form as  1010
b=7        is represented in bitwise form as   0111
a^b         will generate                                      1101
After converting  1101 into decimal form, we get 13.

## 4. Bitwise complement in C (~)

Bitwise complement operator (~) works as follows

If input of this operator is 1, Output would be 0.

If input of this operator is 0, Output would be 1.

### Program for bitwise complement  operator in C

```#include<stdio.h>
int main()
{
unsigned int a=65535,b;
b=~a;
printf("\nb=%u",b);
return(0);
}```
Output
`b=0`

### Description

In the above program, variable a contains 65535.

a=65535   is represented in bitwise form as  1111111111111111

~a    will generate 0000000000000000

After converting 0000000000000000 into decimal form, we get 0, so value of b would be 0.

## 5. Bitwise Left Shift in C (<<)

This operator shifts individual bits of a numeric value towards left by specified number of digits.

### Program for Left Shift operator in C

```#include<stdio.h>
int main()
{
int a=10,b;
b=(a<<1);
printf("\nb=%d",b);
return(0);
}```
Output
`b=20`

### Description

a=10 is represented in bitwise form as 0000000000001010

a<<1  will generate 0000000000010100

After converting 10100 into decimal form, we get 20, so value of b would be 20.

## 6. Bitwise Right Shift in  C (>>)

This operator shifts individual bits of a numeric value towards right by specified number of digits.

### Program for right Shift operator in C

```#include<stdio.h>
int main()
{
int a=10,b;
b=(a>>1);
printf("\nb=%d",b);
return(0);
}```
Output
`b=5`

a=10  is represented in binary form as  1010

a>>1   will generate  101

After converting 101 into decimal form, we get 5, so value of b would be 5.