Open In App

Set the rightmost off bit

Improve
Improve
Like Article
Like
Save
Share
Report

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

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 05 Nov, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads