Skip to content
Related Articles

Related Articles

Improve Article

Set the rightmost off bit

  • Last Updated : 05 Apr, 2021

Write a program that sets the rightmost 0 bit of an integer. 
Examples : 
 

Input:  12 (00...01100)
Output: 13 (00...01101)

Input:  7 (00...00111)
Output: 15 (00...01111)

 

If we add 1 to a number, all set bits after rightmost unset (or zero bit) become 0 and the rightmost unset bit becomes 1.
 

C++




// CPP program to set the rightmost unset bit
#include<iostream>
using namespace std;
   
int setRightmostUnsetBit(int n)
{    
    // If all bits are set 
    if ((n & (n + 1)) == 0)    
        return n;
       
    // Set rightmost 0 bit
    return n | (n+1);    
}
   
// Driver program to test above
int main()
{
    int n = 21;
    cout << setRightmostUnsetBit(n);
    return 0;
}

Java




//Java  program to set the rightmost unset bit
 
public class GFG {
 
    static int setRightmostUnsetBit(int n)
    {    
     // If all bits are set 
     if ((n & (n + 1)) == 0)    
         return n;
         
     // Set rightmost 0 bit
     return n | (n+1);    
    }
 
    //Driver program to test above
    public static void main(String[] args) {
 
         int n = 21;
         System.out.println(setRightmostUnsetBit(n));
    }
 
}

Python 3




# Python3 program to set the
# rightmost unset bit
 
def setRightmostUnsetBit(n) :
 
    # If all bits are set
    if n & (n + 1) == 0 :
        return n
     
    # Set rightmost 0 bit
    return n | (n+1)
 
# Driver code    
if __name__ == "__main__" :
 
    n = 21
    print(setRightmostUnsetBit(n))
 
# This code is contributed
# by ANKITRAI1

C#




// C# program to set the rightmost unset bit
 
using System;
 
public class GFG {
  
    static int setRightmostUnsetBit(int n)
    {    
     // If all bits are set 
     if ((n & (n + 1)) == 0)    
         return n;
          
     // Set rightmost 0 bit
     return n | (n+1);    
    }
  
    //Driver program to test above
    public static void Main() {
  
         int n = 21;
         Console.WriteLine(setRightmostUnsetBit(n));
    }
  
}

PHP




<?php
// PHP program to set the
// rightmost unset bit
function setRightmostUnsetBit($n)
{
    // If all bits are set
    if (($n & ($n + 1)) == 0)
        return $n;
         
    // Set rightmost 0 bit
    return $n | ($n + 1);
}
     
// Driver Code
$n = 21;
echo setRightmostUnsetBit($n);
     
// This code is contributed
// by Shivi_Aggarwal
?>

Javascript




<script>
// JavaScript program to set the rightmost unset bit
function setRightmostUnsetBit(n)
{   
    // If all bits are set
    if ((n & (n + 1)) == 0)   
        return n;
         
    // Set rightmost 0 bit
    return n | (n + 1);   
}
     
// Driver program to test above
    let n = 21;
    document.write(setRightmostUnsetBit(n));
 
// This code is contributed by Manoj.
</script>
Output: 
23

 

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :