Establecer el bit no establecido más a la derecha

Dado un número no negativo n. El problema es establecer el bit no establecido más a la derecha en la representación binaria de n
Ejemplos: 
 

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

En este artículo
se analiza un método. Esta publicación analiza otro método.
Deje que el número de entrada sea n. n+1 tendría todos los bits invertidos después del bit desarmado más a la derecha (incluido el bit desarmado). Entonces, hacer n|(n+1) nos daría el resultado requerido. 
 

C++

#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;
}

Java

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

Python3

# 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

C#

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

PHP

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

Javascript

<script>
// sets the rightmost unset bit
// of n and returns the result
function fun(n)
{
    return n | (n + 1);
}
 
// Driver Code
    let n = 5;
    document.write("The number after setting the");
    document.write(" rightmost unset bit ", fun(n));
 
// This code is contributed by Manoj.
</script>

Producción : 
 

The number after setting the rightmost unset bit 7

 Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por aganjali10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *