Program to invert bits of a number Efficiently in C++


In this tutorial, we will be discussing a program to invert bits of a number efficiently.

For this we will be given with a non-negative number. Our task is to convert the number in the binary format, invert the binary bits of the number. And then finally print the decimal equivalent of the number.

Example

 Live Demo

#include <bits/stdc++.h>
using namespace std;
//inverting bits of number
int invert_bit(int n){
   int x = log2(n) ;
   int m = 1 << x;
   m = m | m - 1;
   n = n ^ m;
   return n;
}
int main(){
   int n = 17;
   cout << invert_bit(n) << endl;
   return 0;
}

Output

14

Updated on: 19-Dec-2019

236 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements