Write a program that unsets the rightmost set bit of an integer.
Examples :
Input: 12 (00...01100) Output: 8 (00...01000) Input: 7 (00...00111) Output: 6 (00...00110)
Let the input number be n. n-1 would have all the bits flipped after the rightmost set bit (including the set bit). So, doing n&(n-1) would give us the required result.
C++
#include <bits/stdc++.h> using namespace std; // unsets the rightmost set bit // of n and returns the result int fun(unsigned int n) { return n & (n - 1); } // Driver Code int main() { int n = 7; cout<<"The number after unsetting the"; cout<<" rightmost set bit "<<fun(n); return 0; } //This code is contributed by rathbhupendra |
chevron_right
filter_none
C
#include <stdio.h> // unsets the rightmost set bit // of n and returns the result int fun(unsigned int n) { return n & (n - 1); } // Driver Code int main() { int n = 7; printf("The number after unsetting the"); printf(" rightmost set bit %d", fun(n)); return 0; } |
chevron_right
filter_none
Java
// Java program to unset the // rightmost set bit of an integer. class GFG { /* unsets the rightmost set bit of n and returns the result */ static int fun(int n) { return n & (n - 1); } // Driver code public static void main(String arg[]) { int n = 7; System.out.print("The number after unsetting " + "the rightmost set bit " + fun(n)); } } // This code is contributed by Anant Agarwal. |
chevron_right
filter_none
Python3
# unsets the rightmost set bit # of n and returns the result def fun(n): return n & (n-1) # Driver code n = 7print("The number after unsetting the rightmost set bit", fun(n)) # This code is contributed # by Anant Agarwal. |
chevron_right
filter_none
C#
// C# program to unset the // rightmost set bit of an integer. using System; class GFG { /* unsets the rightmost set bit of n and returns the result */ static int fun(int n) { return n & (n - 1); } // Driver code public static void Main() { int n = 7; Console.Write("The number after unsetting " + "the rightmost set bit " + fun(n)); } } // This code is contributed by Sam007 |
chevron_right
filter_none
PHP
<?php // unsets the rightmost set bit // of n and returns the result function fun($n) { return $n & ($n - 1); } // Driver Code $n = 7; echo "The number after unsetting the". " rightmost set bit ", fun($n); // This code is contributed by vt_m. ?> |
chevron_right
filter_none
Output :
The number after unsetting the rightmost set bit 6
Please write comments if you find the above code/algorithm incorrect, or find better ways to solve the same problem
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
Recommended Posts:
- Turn off the rightmost set bit | Set 2
- Set the rightmost off bit
- How to turn off a particular bit in a number?
- Position of rightmost set bit
- Set the rightmost unset bit
- Set the rightmost unset bit
- Number formed by the rightmost set bit in N
- Number formed by flipping all bits to the left of rightmost set bit
- Count numbers up to N whose rightmost set bit is K
- How to turn on a particular bit in a number?
- Get the position of rightmost unset bit
- Position of rightmost common bit in two numbers
- Position of rightmost bit with first carry in sum of two binary
- Position of rightmost different bit
- Inserting M into N such that m starts at bit j and ends at bit i | Set-2
- Minimum bit flips such that every K consecutive bits contain at least one set bit
- Inserting m into n such that m starts at bit j and ends at bit i.
- Find position of the only set bit
- Set the K-th bit of a given number
- Find most significant set bit of a number

