c++ bitmask code example
Example 1: bit manupulation in c++
Bitwise Operator
&
|
~
^
<<
>>
-------------------------------------------------
check whether a numbe is a power of 2
i.e if it comes in the format 2**n
int x;
cin >>x;
cout<<~(x&(x-1));
-------------------------------------------------
count no of ones in the binary representation of th given number
int count = 1;
while(n!=0){
count++;
n = n&(n-1);
}
-------------------------------------------------
check whether the i'th bit is set or not i.e 1
for the binary of number n
if(n & (1<<i) == true){
cout<<"Yes it is a bit"
}
-------------------------------------------------
Example 2: bitmask c++
- Set ith bit: x|(1<<i)
1100 1100
| 0001 0000 (1<<i)
-----------
1101 1100
- Get ith bit: (x&(1<<i) != 0)
0010 1100
& 0010 0000 (1<<i)
------------
0010 0000 (is not zero)
- Clear ith bit: x&(~(1<<i))
~ : inverts
0011 0110
& 1101 1111 ~(1<<i)
-----------
0001 0110