# Bitwise Operators and their working with Examples in C

Bitwise operations in C and their working: Here, we are going to learn how bitwise operator work in C programming language?
Submitted by Radib Kar, on December 21, 2018

### 1) & (bitwise AND)

It does AND on every bit of two numbers. The result of AND is 1 only if both bits are 1.

Example:

```    4 & 7
4 → 00000100
7 → 00000111
Doing AND for each bit
From LSB:
0 & 1= 0 (LSB of output)
0 & 1= 0
1 & 1= 1
0 & 0 =0
0 & 0 =0
0 & 0 =0
0 & 0 =0
0 & 0 =0

Thus output:
00000100 → 4
4 & 7 =4
```

### 2) | (bitwise OR)

It takes two numbers as operands and does OR on every bit of two numbers. The result of OR is 1 any of the two bits is 1.

Example:

```    4 | 7
4 → 00000100
7 → 00000111
Doing OR for each bit
From LSB:
0 | 1 =1 (LSB of output)
0 | 1 =1
1 | 1 =1
0 | 0 =0
0 | 0 =0
0 | 0 =0
0 | 0 =0
0 | 0 =0

Thus output:
00000111 → 7
4 | 7 =7
```

### 3) ^ (bitwise XOR)

It does XOR on every bit of two numbers. The result of XOR is 1 if the two bits are different.

Example:

```    4 ^ 7
4 → 00000100
7 → 00000111
Doing XOR for each bit
From LSB:
0 ^ 1 =1 (LSB of output)
0 ^ 1 =1
1 ^ 1 =0
0 ^ 0 =0
0 ^ 0 =0
0 ^ 0 =0
0 ^ 0 =0
0 ^ 0 =0

Thus output:
00000011 → 3
4 ^ 7 =3
```

### 4) << (left shift)

It takes two operands, left shifts the bits of the first operand, the second operand decides the number of places to shift. In every left shift all bits are shifted to left adding a logical 0 at LSB.

Example:

```    4<<1
Before 1 left shift
00000100
After 1 left shift
00001000 → 8
So 4<<1 = 8
```

### 5) >> (right shift)

It takes two numbers, right shifts the bits of the first operand, the second operand decides the number of places to shift.

```    4>>1
Before 1 right shift
00000100
After 1 right shift
00000010 → 2
So 4<<1 = 2
```

### 6) ~ (bitwise NOT)

It takes one operand and inverts all bits of it

Example:

```    ~4
00000100 → 11111011
~4=251
```

Preparation

What's New

Top Interview Coding Problems/Challenges!