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);
   n=n & mask;
   return (n | (value << pos));
}

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

 

Leave a Reply

Your email address will not be published.