blob: 55ba39e774d9414e80045ea905bea1fd1fa62816 (
plain)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
|
Testing with TEST_LENGTH = 27
test _bit_byte, _bit_mask, and bitstr_size
i _bit_byte(i) _bit_mask(i) bitstr_size(i)
0 0 1 0
1 0 2 1
2 0 4 1
3 0 8 1
4 0 16 1
5 0 32 1
6 0 64 1
7 0 128 1
8 1 1 1
9 1 2 2
10 1 4 2
11 1 8 2
12 1 16 2
13 1 32 2
14 1 64 2
15 1 128 2
16 2 1 2
17 2 2 3
18 2 4 3
19 2 8 3
20 2 16 3
21 2 32 3
22 2 64 3
23 2 128 3
24 3 1 3
25 3 2 4
26 3 4 4
test bit_alloc, clearbits, bit_ffc, bit_ffs
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
test bit_set
be: 1 0 100100100100100100100100100
is: 1 0 100100100100100100100100100
test bit_clear
be: 0 3 000100000100000100000100000
is: 0 3 000100000100000100000100000
test bit_test using previous bitstring
i bit_test(i)
0 0
1 0
2 0
3 8
4 0
5 0
6 0
7 0
8 0
9 2
10 0
11 0
12 0
13 0
14 0
15 128
16 0
17 0
18 0
19 0
20 0
21 32
22 0
23 0
24 0
25 0
26 0
test clearbits
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
test bit_nset and bit_nclear
be: 0 1 011111111111111111111111110
is: 0 1 011111111111111111111111110
be: 0 1 010000000000000000000000010
is: 0 1 010000000000000000000000010
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
be: 26 0 111111111111111111111111110
is: 26 0 111111111111111111111111110
be: 0 -1 000000000000000000000000000
is: 0 -1 000000000000000000000000000
first 1 bit should move right 1 position each line
0 -1 0 111111111111111111111111111
1 0 1 011111111111111111111111111
2 0 2 001111111111111111111111111
3 0 3 000111111111111111111111111
4 0 4 000011111111111111111111111
5 0 5 000001111111111111111111111
6 0 6 000000111111111111111111111
7 0 7 000000011111111111111111111
8 0 8 000000001111111111111111111
9 0 9 000000000111111111111111111
10 0 10 000000000011111111111111111
11 0 11 000000000001111111111111111
12 0 12 000000000000111111111111111
13 0 13 000000000000011111111111111
14 0 14 000000000000001111111111111
15 0 15 000000000000000111111111111
16 0 16 000000000000000011111111111
17 0 17 000000000000000001111111111
18 0 18 000000000000000000111111111
19 0 19 000000000000000000011111111
20 0 20 000000000000000000001111111
21 0 21 000000000000000000000111111
22 0 22 000000000000000000000011111
23 0 23 000000000000000000000001111
24 0 24 000000000000000000000000111
25 0 25 000000000000000000000000011
26 0 26 000000000000000000000000001
first 0 bit should move right 1 position each line
0 0 -1 000000000000000000000000000
1 1 0 100000000000000000000000000
2 2 0 110000000000000000000000000
3 3 0 111000000000000000000000000
4 4 0 111100000000000000000000000
5 5 0 111110000000000000000000000
6 6 0 111111000000000000000000000
7 7 0 111111100000000000000000000
8 8 0 111111110000000000000000000
9 9 0 111111111000000000000000000
10 10 0 111111111100000000000000000
11 11 0 111111111110000000000000000
12 12 0 111111111111000000000000000
13 13 0 111111111111100000000000000
14 14 0 111111111111110000000000000
15 15 0 111111111111111000000000000
16 16 0 111111111111111100000000000
17 17 0 111111111111111110000000000
18 18 0 111111111111111111000000000
19 19 0 111111111111111111100000000
20 20 0 111111111111111111110000000
21 21 0 111111111111111111111000000
22 22 0 111111111111111111111100000
23 23 0 111111111111111111111110000
24 24 0 111111111111111111111111000
25 25 0 111111111111111111111111100
26 26 0 111111111111111111111111110
first 0 bit should move left 1 position each line
0 -1 0 111111111111111111111111111
1 26 0 111111111111111111111111110
2 25 0 111111111111111111111111100
3 24 0 111111111111111111111111000
4 23 0 111111111111111111111110000
5 22 0 111111111111111111111100000
6 21 0 111111111111111111111000000
7 20 0 111111111111111111110000000
8 19 0 111111111111111111100000000
9 18 0 111111111111111111000000000
10 17 0 111111111111111110000000000
11 16 0 111111111111111100000000000
12 15 0 111111111111111000000000000
13 14 0 111111111111110000000000000
14 13 0 111111111111100000000000000
15 12 0 111111111111000000000000000
16 11 0 111111111110000000000000000
17 10 0 111111111100000000000000000
18 9 0 111111111000000000000000000
19 8 0 111111110000000000000000000
20 7 0 111111100000000000000000000
21 6 0 111111000000000000000000000
22 5 0 111110000000000000000000000
23 4 0 111100000000000000000000000
24 3 0 111000000000000000000000000
25 2 0 110000000000000000000000000
26 1 0 100000000000000000000000000
first 1 bit should move left 1 position each line
0 0 -1 000000000000000000000000000
1 0 26 000000000000000000000000001
2 0 25 000000000000000000000000011
3 0 24 000000000000000000000000111
4 0 23 000000000000000000000001111
5 0 22 000000000000000000000011111
6 0 21 000000000000000000000111111
7 0 20 000000000000000000001111111
8 0 19 000000000000000000011111111
9 0 18 000000000000000000111111111
10 0 17 000000000000000001111111111
11 0 16 000000000000000011111111111
12 0 15 000000000000000111111111111
13 0 14 000000000000001111111111111
14 0 13 000000000000011111111111111
15 0 12 000000000000111111111111111
16 0 11 000000000001111111111111111
17 0 10 000000000011111111111111111
18 0 9 000000000111111111111111111
19 0 8 000000001111111111111111111
20 0 7 000000011111111111111111111
21 0 6 000000111111111111111111111
22 0 5 000001111111111111111111111
23 0 4 000011111111111111111111111
24 0 3 000111111111111111111111111
25 0 2 001111111111111111111111111
26 0 1 011111111111111111111111111
0 bit should move right 1 position each line
0 0 1 011111111111111111111111111
1 1 0 101111111111111111111111111
2 2 0 110111111111111111111111111
3 3 0 111011111111111111111111111
4 4 0 111101111111111111111111111
5 5 0 111110111111111111111111111
6 6 0 111111011111111111111111111
7 7 0 111111101111111111111111111
8 8 0 111111110111111111111111111
9 9 0 111111111011111111111111111
10 10 0 111111111101111111111111111
11 11 0 111111111110111111111111111
12 12 0 111111111111011111111111111
13 13 0 111111111111101111111111111
14 14 0 111111111111110111111111111
15 15 0 111111111111111011111111111
16 16 0 111111111111111101111111111
17 17 0 111111111111111110111111111
18 18 0 111111111111111111011111111
19 19 0 111111111111111111101111111
20 20 0 111111111111111111110111111
21 21 0 111111111111111111111011111
22 22 0 111111111111111111111101111
23 23 0 111111111111111111111110111
24 24 0 111111111111111111111111011
25 25 0 111111111111111111111111101
26 26 0 111111111111111111111111110
1 bit should move right 1 position each line
0 1 0 100000000000000000000000000
1 0 1 010000000000000000000000000
2 0 2 001000000000000000000000000
3 0 3 000100000000000000000000000
4 0 4 000010000000000000000000000
5 0 5 000001000000000000000000000
6 0 6 000000100000000000000000000
7 0 7 000000010000000000000000000
8 0 8 000000001000000000000000000
9 0 9 000000000100000000000000000
10 0 10 000000000010000000000000000
11 0 11 000000000001000000000000000
12 0 12 000000000000100000000000000
13 0 13 000000000000010000000000000
14 0 14 000000000000001000000000000
15 0 15 000000000000000100000000000
16 0 16 000000000000000010000000000
17 0 17 000000000000000001000000000
18 0 18 000000000000000000100000000
19 0 19 000000000000000000010000000
20 0 20 000000000000000000001000000
21 0 21 000000000000000000000100000
22 0 22 000000000000000000000010000
23 0 23 000000000000000000000001000
24 0 24 000000000000000000000000100
25 0 25 000000000000000000000000010
26 0 26 000000000000000000000000001
|