Modify a bit at a given position - GeeksforGeeks

25 Apr, 2022
Given a number n, a position p and a binary value b, we need to change the bit at position p in n to value b.
Examples : 
Input : n = 7, p = 2, b = 0
Output : 3
7 is 00000111 after clearing bit at 
2nd position, it becomes 0000011.

Input : n = 7, p = 3, b = 1
Output : 15
7 is 00000111 after setting bit at 
3rd position it becomes 00001111.
We first create a mask that has set bit only 
at given position using bit wise shift.
      mask = 1 << position

Then to change value of bit to b, we first
make it 0 using below operation
      value & ~mask

After changing it 0, we change it to b by
doing or of above expression with following
(b << p) & mask, i.e., we return
      ((n & ~mask) | (b << p))
Below is the implementation of above steps :  
C++
Java
Python3
C#
PHP
Javascript
// CPP program to modify a bit at position// p in n to b.#include <bits/stdc++.h>using namespace std; // Returns modified n.int modifyBit(int n, int p, int b){    int mask = 1 << p;    return ((n & ~mask) | (b << p));} // Driver codeint main(){    cout << modifyBit(6, 2, 0) << endl;    cout << modifyBit(6, 5, 1) << endl;    return 0;}
// Java program to modify a bit// at position p in n to b.import java.io.*; class GFG{     // Returns modified n.public static int modifyBit(int n,                            int p,                            int b){    int mask = 1 << p;    return (n & ~mask) |           ((b << p) & mask);}    // Driver Code    public static void main (String[] args)    {        System.out.println(modifyBit(6, 2, 0));        System.out.println (modifyBit(6, 5, 1));    }} // This code is contributed by m_kit
# Python3 program to modify a bit at position# p in n to b. # Returns modified n.def modifyBit( n,  p,  b):    mask = 1 << p    return (n & ~mask) | ((b << p) & mask)  # Driver codedef main():    print(modifyBit(6, 2, 0))    print(modifyBit(6, 5, 1))     if __name__ == '__main__':    main()# This code is contributed by PrinciRaj1992
// C# program to modify a bit// at position p in n to b.using System; class GFG{// Returns modified n.public static int modifyBit(int n,                            int p,                            int b){    int mask = 1 << p;    return (n & ~mask) |           ((b << p) & mask);}     // Driver Code    static public void Main ()    {             Console.WriteLine(modifyBit(6, 2, 0));        Console.WriteLine(modifyBit(6, 5, 1));    }} // This code is contributed by ajit
<?php// PHP program to modify a bit// at position p in n to b. // Returns modified n.function modifyBit($n, $p, $b){    $mask = 1 << $p;    return ($n & ~$mask) |           (($b << $p) & $mask);}     // Driver code    echo modifyBit(6, 2, 0),"\n";    echo modifyBit(6, 5, 1) ,"\n";     // This code is contributed by ajit?>
<script> // Javascript program to modify a bit// at position p in n to b. // Returns modified n.function modifyBit(n, p, b){    let mask = 1 << p;    return (n & ~mask) |           ((b << p) & mask);} // Driver codedocument.write(modifyBit(6, 2, 0) + "<br/>");document.write(modifyBit(6, 5, 1)); // This code is contributed by susmitakundugoaldanga </script>
Output : 
 2
 38
Time Complexity :O(1)
This article is contributed by Pawan Asipu. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
jit_t
princiraj1992
gfg_sal_gfg
ajaykr00kj
susmitakundugoaldanga
xdvxkhbllpisbwovid
Bit Magic
Bit Magic
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Set, Clear and Toggle a given bit of a number in C
Hamming code Implementation in C/C++
Program to find parity
Check whether K-th bit is set or not
Write an Efficient Method to Check if a Number is Multiple of 3
Implementation of Bit Stuffing and Bit Destuffing
Builtin functions of GCC compiler
Swap bits in a given number
Check for Integer Overflow
Bit Tricks for Competitive Programming