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