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:
