Tutorialspoint.dev

How to turn off a particular bit in a number?

Difficulty Level: Rookie

Given a number n and a value k, turn of the k’th bit in n.

Examples:

Input:  n = 15, k = 1
Output: 14

Input:  n = 15, k = 2
Output: 13

Input:  n = 15, k = 3
Output: 11

Input:  n = 15, k = 4
Output: 7

Input:  n = 15, k >= 5
Output: 15 

The idea is to use bitwise <<, & and ~ operators. Using expression "~(1 << (k – 1))“, we get a number which has all bits set, except the k’th bit. If we do bitwise & of this expression with n, we get a number which has all bits same as n except the k’th bit which is 0.

Below is the implementation of above idea.

C++



#include <iostream>
using namespace std;
  
// Returns a number that has all bits same as n
// except the k'th bit which is made 0
int turnOffK(int n, int k)
{
    // k must be greater than 0
    if (k <= 0) return n;
  
    // Do & of n with a number with all set bits except
    // the k'th bit
    return (n & ~(1 << (k - 1)));
}
  
// Driver program to test above function
int main()
{
    int n = 15;
    int k = 4;
    cout << turnOffK(n, k);
    return 0;
}

/div>

Java

// Java program to turn off a particular bit in a number
import java.io.*;
  
class TurnOff 
{
    // Function to returns a number that has all bits same as n
    // except the k'th bit which is made 0
    static int turnOffK(int n, int k)
    {
        // k must be greater than 0
        if (k <= 0
            return n;
   
        // Do & of n with a number with all set bits except
        // the k'th bit
        return (n & ~(1 << (k - 1)));
    }
      
    // Driver program
    public static void main (String[] args) 
    {
        int n = 15;
        int k = 4;
        System.out.println(turnOffK(n, k));
    }
}
// Contributed by Pramod Kumar

Python3

# Returns a number that
# has all bits same as n
# except the k'th bit
# which is made 0
  
def turnOffK(n,k):
  
    # k must be greater than 0
    if (k <= 0): 
        return n
   
    # Do & of n with a number
    # with all set bits except
    # the k'th bit
    return (n & ~(1 << (k - 1)))
  
   
# Driver code
n = 15
k = 4
print(turnOffK(n, k))
  
# This code is contributed
# by Anant Agarwal.

C#

// C# program to turn off a 
// particular bit in a number
using System;
  
class GFG
{
      
    // Function to returns a number 
    // that has all bits same as n
    // except the k'th bit which is 
    // made 0
    static int turnOffK(int n, int k)
    {
        // k must be greater than 0
        if (k <= 0) 
            return n;
  
        // Do & of n with a number 
        // with all set bits except
        // the k'th bit
        return (n & ~ (1 << (k - 1)));
    }
      
    // Driver Code
    public static void Main () 
    {
        int n = 15;
        int k = 4;
        Console.Write(turnOffK(n, k));
    }
}
  
// This code is contributed by Nitin Mittal.

PHP

<?php
// PHP program to turn off a 
// particular bit in a number
  
// Returns a number that has
// all bits same as n except 
// the k'th bit which is made 0
function turnOffK($n, $k)
{
      
    // k must be greater than 0
    if ($k <= 0)
        return $n;
  
    // Do & of n with a number
    // with all set bits except
    // the k'th bit
    return ($n & ~(1 << ($k - 1)));
}
  
// Driver Code
$n = 15;
$k = 4;
echo turnOffK($n, $k);
  
// This code is contributed by nitin mittal
?>


Output:

7

Exercise: Write a function turnOnK() that turns the k’th bit on.



This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter