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

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

Output:

7

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

This article is contributed by **Rahul Jain**. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

## Recommended Posts:

- How to turn on a particular bit in a number?
- Turn off the rightmost set bit
- Maximize a given unsigned number number by swapping bits at it's extreme positions.
- Count number of trailing zeros in Binary representation of a number using Bitset
- Given a number as a string, find the number of contiguous subsequences which recursively add up to 9
- Given a number as a string, find the number of contiguous subsequences which recursively add up to 9 | Set 2
- Find a number which give minimum sum when XOR with every number of array of integers
- Check if the binary representation of a number has equal number of 0s and 1s in blocks
- Minimum number of given powers of 2 required to represent a number
- Build Lowest Number by Removing n digits from a given number
- Number of leading zeros in binary representation of a given number
- Minimize the number of replacements to get a string with same number of 'a', 'b' and 'c' in it
- Binary representation of next greater number with same number of 1's and 0's
- Check if a number has same number of set and unset bits
- Largest even number that can be formed by any number of swaps