📌  相关文章
📜  如何打开数字中的特定位?

📅  最后修改于: 2021-04-23 06:42:31             🧑  作者: Mango

给定一个数字n和一个值k,打开n中的第k位。

例子:

Input:  n = 4, k = 2
Output: 6

Input:  n = 3, k = 3
Output: 7

Input:  n = 64, k = 4
Output: 72

Input:  n = 64, k = 5
Output: 80

这个想法是使用按位<<和|运算符。使用表达式“(1 <<(k – 1))”,我们得到一个除第k位外所有位均未置位的数字。如果用n对该表达式进行按位|,我们将得到一个具有全部n的数。与第n个相同的位,第k个位为1。

以下是上述想法的实现。

C++
// CPP program to turn on a particular bit
#include 
using namespace std;
  
// Returns a number that has all bits same as n
// except the k'th bit which is made 1
int turnOnK(int n, int k)
{
    // k must be greater than 0
    if (k <= 0)
        return n;
  
    // Do | of n with a number with all 
    // unset bits except the k'th bit
    return (n | (1 << (k - 1)));
}
  
// Driver program to test above function
int main()
{
    int n = 4;
    int k = 2;
    cout << turnOnK(n, k);
    return 0;
}


Java
// Java program to turn on a particular
// bit
class GFG {
      
    // Returns a number that has all
    // bits same as n except the k'th
    // bit which is made 1
    static int turnOnK(int n, int k)
    {
          
        // k must be greater than 0
        if (k <= 0)
            return n;
      
        // Do | of n with a number with
        // all unset bits except the 
        // k'th bit
        return (n | (1 << (k - 1)));
    }
      
    // Driver program to test above 
    // function
    public static void main(String [] args)
    {
        int n = 4;
        int k = 2;
        System.out.print(turnOnK(n, k));
    }
}
  
// This code is contributed by Smitha


Python 3
# Python 3 program to turn on a 
# particular bit
  
# Returns a number that has all
# bits same as n except the k'th
# bit which is made 1
def turnOnK(n, k):
  
    # k must be greater than 0
    if (k <= 0):
        return n
  
    # Do | of n with a number
    # with all unset bits except
    # the k'th bit
    return (n | (1 << (k - 1)))
  
# Driver program to test above 
# function
n = 4
k = 2
print(turnOnK(n, k))
  
# This code is contributed by
# Smitha


C#
// C# program to turn on a particular
// bit
using System;
  
class GFG {
      
    // Returns a number that has all
    // bits same as n except the k'th
    // bit which is made 1
    static int turnOnK(int n, int k)
    {
          
        // k must be greater than 0
        if (k <= 0)
            return n;
      
        // Do | of n with a number 
        // with all unset bits except 
        // the k'th bit
        return (n | (1 << (k - 1)));
    }
      
    // Driver program to test above
    // function
    public static void Main()
    {
        int n = 4;
        int k = 2;
        Console.Write(turnOnK(n, k));
    }
}
  
// This code is contributed by Smitha


PHP


输出:
6