How do you set, clear, and toggle a bit in C/C++?


You can set clear and toggle bits using bitwise operators in C, C++, Python, and all other programming languages that support these operations. You also need to use the bitshift operator to get the bit to the right place.

Setting a bit

To set a bit, we'll need to use the bitwise OR operator −

Example

#include<iostream>
using namespace std;
int main() {
   int i = 0, n;
   
   // Enter bit to be set:
   cin >> n;
   i |= (1 << n); // Take OR of i and 1 shifted n positions
   cout << i;
   return 0;
}

Output

If you enter 4, This will give the output −

16

because 16 is equivalent to 10000 in binary.

Clearing a bit

To clear a bit, we'll need to use the bitwise AND operator(&) and bitwise NOT operator(~) −

Example

#include<iostream>
using namespace std;
int main() {
   // i is 110 in binary
   int i = 6, n;
   
   // Enter bit to be cleared:
   cin >> n;
   i &= ~(1 << n); // Take OR of i and 1 shifted n positions negated
   cout << i;
   return 0;
}

Output

If you enter 1, This will give the output −

4

because 110 becomes 100 which is equivalent to 4 in decimal.

Toggling a bit

To toggle a bit, we'll need to use the bitwise XOR operator(^) −

Example

#include<iostream>
using namespace std;
int main() {
   // i is 110 in binary
   int i = 6, n;
   
   // Enter bit to be toggled:
   cin >> n;
   i ^= (1 << n); // Take XOR of i and 1 shifted n positions
   cout << i;
   return 0;
}

Output

If you enter 1, This will give the output −

4

because 110 becomes 100 which is equivalent to 4 in decimal.

Updated on: 11-Feb-2020

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements