Related Articles

Related Articles

Set the rightmost unset bit
  • Difficulty Level : Easy
  • Last Updated : 29 Jul, 2019

Given a non-negative number n. The problem is to set the rightmost unset bit in the binary representation of n

Examples:

Input : 21
Output : 23
(21)10 = (10101)2
Rightmost unset bit is at position 2(from right) as 
highlighted in the binary representation of 21.
(23)10 = (10111)2
The bit at position 2 has been set.

Input : 2
Output : 3

One method is discussed in this article

This post discusses another method.

Let the input number be n. n+1 would have all the bits flipped after the rightmost unset bit (including the unset bit). So, doing n|(n+1) would give us the required result.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <stdio.h>
  
// sets the rightmost unset bit
// of n and returns the result
int fun(unsigned int n)
{
    return n | (n + 1);
}
  
// Driver Code
int main()
{
    int n = 5;
    printf("The number after setting the");
    printf(" rightmost unset bit %d", fun(n));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
      
    // sets the rightmost unset bit
    // of n and returns the result
    static int fun(int n)
    {
        return n | (n + 1);
    }
      
    // Driver Code
    public static void main(String[] args)
    {
        int n = 5;
        System.out.printf("The number "
                  + "after setting the");
        System.out.printf(" rightmost "
              + " unset bit %d", fun(n));
    }
}
  
// This code is contributed by Smitha

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# sets the rightmost unset bit
# of n and returns the result
def fun(n):
  
    return n | (n + 1)
  
# Driver Code
n = 5
print("The number after setting the", end="")
print(" rightmost unset bit ", fun(n))
  
# This code is contributed by Smitha

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
  
class GFG {
      
    // sets the rightmost unset bit
    // of n and returns the result
    static int fun(int n)
    {
        return n | (n + 1);
    }
      
    // Driver Code
    public static void Main()
    {
        int n = 5;
        Console.Write("The number "
            + "after setting the");
        Console.Write(" rightmost "
           + "unset bit "+ fun(n));
    }
}
  
// This code is contributed by Smitha

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to Set the rightmost
// unset bit
  
// sets the rightmost unset bit
// of n and returns the result
function fun($n)
{
    return $n | ($n + 1);
}
  
    // Driver Code
    $n = 5;
    echo "The number after setting the";
    echo " rightmost unset bit ", fun($n);
      
// This code is contributed m_kit
?>

chevron_right



Output :

The number after setting the rightmost unset bit 7

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
Recommended Articles
Page :