forked from Muhammad-Magdi/problem-solving
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bitwise operations and bitmasks.txt
69 lines (40 loc) · 1.16 KB
/
bitwise operations and bitmasks.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
1- How does numbers are saved?
Binary Representation.
Boolean algebra.
What's bitwise operations?
operation operator
and &
or |
Xor ^
invert ~
left shift <<
right shift >>
- How to get all the possible permutations of k(e.g k = 3) bits?
for(int msk = 0 ; msk < (1<<k) ; ++msk){
// Anything
}
- How to check oddness of a variable x?
if(x&1)
printf("It's Odd\n");
else
printf("It's Even\n");
- How to check the state of the bit at position k of some mask?
if(msk&(1<<k))
printf("It's ON");
else
printf("It's OFF");
- How to ON the bit at position k of some mask?
msk |= (1<<k);
- How to ON the first n bits of some mask?
msk |= ((1<<n)-1);
- How to toggle the bit at position k of some mask?
msk ^= (1<<k);
- How to OFF the bit at position k of some mask?
msk &= ~(1<<k);
- How to get the most right ON bit of some mask?
rightON = (msk&(-msk));
- How to count the number of ON bits in some mask of n bits?
int num = 0;
for(int j = 0 ; j < n ; ++j)
if(msk&(1<<j))
++num;