Skip to content

Commit c4b4871

Browse files
authored
Create bit_manipulation.cpp
It contains fundamental code to set bit, clear bit, toggle bit and update bit
1 parent 8a41ede commit c4b4871

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

bit_manipulation.cpp

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// bit manipulation: set bit, clear bit, toggle bit, update bit
2+
#include <bits/stdc++.h>
3+
using namespace std;
4+
5+
int setbit(int n, int k)
6+
{ // Setting a bit means that if kth bit is 0, then set it to 1 and if it is 1 then let it be as it is
7+
return (n | (1 << (k - 1)));
8+
}
9+
10+
int clearbit(int n, int k)
11+
{ // Clearing a bit means that if kth bit is 1, then clear it to 0 and if it is 0 then let it be as it is
12+
return (n & (~(1 << (k - 1))));
13+
}
14+
15+
int togglebit(long long int n, long long int k)
16+
{ // Toggling a bit means that if kth bit is 1, then change it to 0 and if it is 0 then change it to 1
17+
return (n ^ (1 << (k - 1)));
18+
}
19+
20+
int updatebit(long long int n, long long int k, long long int value)
21+
{
22+
long long int temp=~(1<<k);
23+
n=n&temp;
24+
return (n | (value << k));
25+
}
26+
27+
int main()
28+
{
29+
int n = 6, k = 2, value = 1;
30+
cout<<k<<" bit of "<<n<<" set = "<<setbit(n, k)<<endl;
31+
cout<<k<<" bit of "<<n<<" cleared = "<<clearbit(n, k)<<endl;
32+
cout<<k<<" bit of "<<n<<" toggled = "<<togglebit(n, k)<<endl;
33+
cout<<k<<" bit of "<<n<<" updated = "<<updatebit(n, k, value)<<endl;
34+
return 0;
35+
}

0 commit comments

Comments
 (0)