Establecer el k-ésimo bit de un número dado

Dado un número n y un valor k. Desde la derecha, establezca el bit k-ésimo en la representación binaria de n. La posición de LSB (o último bit) es 0, el penúltimo bit es 1 y así sucesivamente. Además, 0 <= k < x, donde x es el número de bits en la representación binaria de n.
Ejemplos: 
 

Input : n = 10, k = 2
Output : 14
(10)10 = (1010)2
Now, set the 2nd bit from right.
(14)10 = (1110)2
2nd bit has been set.

Input : n = 15, k = 3
Output : 15
3rd bit of 15 is already set.

Para establecer cualquier bit usamos bit a bit OR | operador. Como ya sabemos bit a bit OR | El operador evalúa cada bit del resultado a 1 si alguno de los bits correspondientes del operando está establecido (1). Para establecer el k-ésimo bit de un número, necesitamos desplazarnos 1 k veces hacia su izquierda y luego realizar la operación OR bit a bit con el número y el resultado del desplazamiento a la izquierda realizado justo antes. 
 

                            In general, (1 << k) | n.

C++

// C++ implementation to set the kth bit
// of the given number
#include <bits/stdc++.h>
 
using namespace std;
 
// function to set the kth bit
int setKthBit(int n, int k)
{
    // kth bit of n is being set by this operation
    return ((1 << k) | n);
}
 
// Driver program to test above
int main()
{
    int n = 10, k = 2;
    cout << "Kth bit set number = "
         << setKthBit(n, k);
    return 0;
}

Java

// Java implementation to set the kth bit
// of the given number
 
class GFG {
     
// function to set the kth bit
static int setKthBit(int n, int k)
{
    // kth bit of n is being set by this operation
    return ((1 << k) | n);
}
 
// Driver code
public static void main(String arg[])
{
    int n = 10, k = 2;
    System.out.print("Kth bit set number = " +
                             setKthBit(n, k));
}
}
 
// This code is contributed by Anant Agarwal.

Python3

# Python implementation
# to set the kth bit
# of the given number
 
# function to set
# the kth bit
def setKthBit(n,k):
 
    # kth bit of n is being
    # set by this operation
    return ((1 << k) | n)
     
# Driver code
 
n = 10
k = 2
 
print("Kth bit set number = ",
          setKthBit(n, k))
 
# This code is contributed
# by Anant Agarwal.

C#

// C# implementation to set the
// kth bit of the given number
using System;
 
class GFG {
     
// function to set the kth bit
static int setKthBit(int n, int k)
{
    // kth bit of n is being set
    // by this operation
    return ((1 << k) | n);
}
 
// Driver code
public static void Main()
{
    int n = 10, k = 2;
    Console.Write("Kth bit set number = "
                    + setKthBit(n, k));
                    
}
}
 
// This code is contributed by
// Smitha Dinesh Semwal.

PHP

<?php
// PHP implementation to
// set the kth bit of
// the given number
 
// function to set
// the kth bit
function setKthBit($n, $k)
{
    // kth bit of n is being
    // set by this operation
    return ((1 << $k) | $n);
}
 
// Driver Code
$n = 10; $k = 2;
echo "Kth bit set number = ",
           setKthBit($n, $k);
 
// This code is contributed by m_kit
?>

Javascript

<script>
    // Javascript implementation to set the
    // kth bit of the given number
     
    // function to set the kth bit
    function setKthBit(n, k)
    {
        // kth bit of n is being set
        // by this operation
        return ((1 << k) | n);
    }
     
    let n = 10, k = 2;
    document.write("Kth bit set number = " + setKthBit(n, k));
     
    // This code is contributed by rameshtravel07.
</script>

Producción: 
 

Kth bit set number = 14

Complejidad de tiempo: O(1)

Espacio auxiliar: O(1)
Este artículo es una contribución de Ayush Jauhari . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *