# Program to Clear the Rightmost Set Bit of a Number in C++ and Python

In the previous article, we have discussed about C++ Program to Check if it is Sparse Matrix or Not. Let us learn Program to Clear the Rightmost Set Bit of a Number in C++ Program and Python.

Binary Representation of a Number:

Binary is a base-2 number system in which a number is represented by two states: 0 and 1. We can also refer to it as a true and false state. A binary number is constructed in the same way that a decimal number is constructed.

Examples:

Examples1:

Input:

given number=19

Output:

The given number before removing right most set bit :
19
The given number after removing right most set bit :
18

Examples2:

Input:

given number =18

Output:

The given number before removing right most set bit :
18
The given number after removing right most set bit :
16

Examples3:

Input:

given number=512

Output:

The given number before removing right most set bit :
512
The given number after removing right most set bit :
0

## Program to Clear the Rightmost Set Bit of a Number in C++ and Python

There are several ways to clear the rightmost set Bit of a Number in C++ and Python some of them are:

Drive into Python Programming Examples and explore more instances related to python concepts so that you can become proficient in generating programs in Python Programming Language.

### Method #1: Using Bitwise Operators in C++

Approach:

• There is a function called clear rightmost set bit that is defined.
• It accepts n as an argument and returns n with its rightmost set bit cleared.
• This is accomplished by computing n & (n â€“ 1) and returning the result.
• (n â€“ 1) equals n when all the rightmost successive 0s are flipped and the initial rightmost 1 is flipped.
• As a result, n & (n â€“ 1) equals n with the rightmost 1 cleared.

Below is the implementation of above approach:

#include <bits/stdc++.h>
using namespace std;
// function which removes the right most set bit in the
// given number
int clearRight(int numb)
{
// clearing the right most set bit from
// the given number and store it in the result
int reslt = (numb) & (numb - 1);
// returing the calculated result
return reslt;
}

// main function
int main()
{
// given number
int numb = 19;

cout << "The given number before removing right most "
"set bit : "
<< numb << endl;
// passing the given number to clearRight function
// to remove the clear the rightmost setbit
cout << "The given number after removing right most "
"set bit : "
<< clearRight(numb) << endl;
return 0;
}

Output:

The given number before removing right most set bit : 19
The given number after removing right most set bit : 18

### Method #2: Using Bitwise Operators in Python

Approach:

• There is a function called clear rightmost set bit that is defined.
• It accepts n as an argument and returns n with its rightmost set bit cleared.
• This is accomplished by computing n & (n â€“ 1) and returning the result.
• (n â€“ 1) equals n when all the rightmost successive 0s are flipped and the initial rightmost 1 is flipped.
• As a result, n & (n â€“ 1) equals n with the rightmost 1 cleared.
• We will implement the same function in python

Below is the implementation:

# function which removes the right most set bit in the
# given number

def clearRight(numb):
# clearing the right most set bit from
# the given number and store it in the result
reslt = (numb) & (numb - 1)
# returing the calculated result
return reslt
# Driver Code

# given number
numb = 19

print("The given number before removing right most "
"set bit : ")
print(numb)
# passing the given number to clearRight function
# to remove the clear the rightmost setbit
print("The given number after removing right most set bit : ")
print(clearRight(numb))


Output:

The given number before removing right most set bit :
19
The given number after removing right most set bit :
18

Related Programs: