Turn off the rightmost set bit

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

#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


C

filter_none

edit
close

play_arrow

link
brightness_4
code

#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


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# unsets the rightmost set bit
# of n and returns the result 
def fun(n):
  
     return n & (n-1)
  
# Driver code
  
n = 7
print("The number after unsetting the rightmost set bit", fun(n))
  
# This code is contributed
# by Anant Agarwal.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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



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.




My Personal Notes arrow_drop_up

Improved By : vt_m, rathbhupendra

Article Tags :
Practice Tags :


9


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.