# Concept of Bit Manipulation using C++

Bit Manipulation is a very effective technique that is used to solve problems in optimized way. This technique is useful for competitive programming perspective.

## Bit Manipulation in C++

Prerequisites: We should have knowledge of binary number system

Get ith bit:
Mask: Right shift n ‘i’ times, and check the first bit.

```int getBit(int n,int pos){
return (n >> pos) & 1;
}```

Set ith bit:
Mask: 1 << i
Bitwise OR operation between n and mask sets the ith bit to one.

```int setBit(int n, int pos){
return(n | (1 << pos));
}```

Clear ith bit
Mask: ~ (1 << i )
In the mask, all the bits would be one, except the ith bit. Taking bitwise AND with n would clear the ith bit.

```int clearBit(int n,int pos){
int mask=~(1 << pos);
return (n & mask);
}```

Toggle ith bit
Mask: 1 << i
Bitwise XOR operation between n and mask toggle the ith bit.

```int toggleBit(int n, int pos){
return (n xor (1 << pos));
}```

Update i’th bit to the given value
Mask: mask has all the bits set to one except i
th bit.
n = n & mask, ith bit is cleared.Now, to set ith bit to value, we take value << pos as the mask.

```int updateBit(int n,int pos,int value){
int mask=~(1 << pos);
return (n | (value << pos));
}```

I hope you have got the concept of bit manipulation with the above example of C++ programming.