1Testing with TEST_LENGTH = 64
2
3test _bit_byte, _bit_mask, and bitstr_size
4  i   _bit_byte(i)   _bit_mask(i) bitstr_size(i)
5  0              0              1              0
6  1              0              2              1
7  2              0              4              1
8  3              0              8              1
9  4              0             16              1
10  5              0             32              1
11  6              0             64              1
12  7              0            128              1
13  8              1              1              1
14  9              1              2              2
15 10              1              4              2
16 11              1              8              2
17 12              1             16              2
18 13              1             32              2
19 14              1             64              2
20 15              1            128              2
21 16              2              1              2
22 17              2              2              3
23 18              2              4              3
24 19              2              8              3
25 20              2             16              3
26 21              2             32              3
27 22              2             64              3
28 23              2            128              3
29 24              3              1              3
30 25              3              2              4
31 26              3              4              4
32 27              3              8              4
33 28              3             16              4
34 29              3             32              4
35 30              3             64              4
36 31              3            128              4
37 32              4              1              4
38 33              4              2              5
39 34              4              4              5
40 35              4              8              5
41 36              4             16              5
42 37              4             32              5
43 38              4             64              5
44 39              4            128              5
45 40              5              1              5
46 41              5              2              6
47 42              5              4              6
48 43              5              8              6
49 44              5             16              6
50 45              5             32              6
51 46              5             64              6
52 47              5            128              6
53 48              6              1              6
54 49              6              2              7
55 50              6              4              7
56 51              6              8              7
57 52              6             16              7
58 53              6             32              7
59 54              6             64              7
60 55              6            128              7
61 56              7              1              7
62 57              7              2              8
63 58              7              4              8
64 59              7              8              8
65 60              7             16              8
66 61              7             32              8
67 62              7             64              8
68 63              7            128              8
69
70test bit_alloc, clearbits, bit_ffc, bit_ffs
71be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
72is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
73
74test bit_set
75be:   1   0 1001001001001001001001001001001001001001001001001001001001001001
76is:   1   0 1001001001001001001001001001001001001001001001001001001001001001
77
78test bit_clear
79be:   0   3 0001000001000001000001000001000001000001000001000001000001000001
80is:   0   3 0001000001000001000001000001000001000001000001000001000001000001
81
82test bit_test using previous bitstring
83  i    bit_test(i)
84  0              0
85  1              0
86  2              0
87  3              8
88  4              0
89  5              0
90  6              0
91  7              0
92  8              0
93  9              2
94 10              0
95 11              0
96 12              0
97 13              0
98 14              0
99 15            128
100 16              0
101 17              0
102 18              0
103 19              0
104 20              0
105 21             32
106 22              0
107 23              0
108 24              0
109 25              0
110 26              0
111 27              8
112 28              0
113 29              0
114 30              0
115 31              0
116 32              0
117 33              2
118 34              0
119 35              0
120 36              0
121 37              0
122 38              0
123 39            128
124 40              0
125 41              0
126 42              0
127 43              0
128 44              0
129 45             32
130 46              0
131 47              0
132 48              0
133 49              0
134 50              0
135 51              8
136 52              0
137 53              0
138 54              0
139 55              0
140 56              0
141 57              2
142 58              0
143 59              0
144 60              0
145 61              0
146 62              0
147 63            128
148
149test clearbits
150be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
151is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
152
153test bit_nset and bit_nclear
154be:   0   1 0111111111111111111111111111111111111111111111111111111111111110
155is:   0   1 0111111111111111111111111111111111111111111111111111111111111110
156be:   0   1 0100000000000000000000000000000000000000000000000000000000000010
157is:   0   1 0100000000000000000000000000000000000000000000000000000000000010
158be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
159is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
160be:  63   0 1111111111111111111111111111111111111111111111111111111111111110
161is:  63   0 1111111111111111111111111111111111111111111111111111111111111110
162be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
163is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
164
165first 1 bit should move right 1 position each line
166  0  -1   0 1111111111111111111111111111111111111111111111111111111111111111
167  1   0   1 0111111111111111111111111111111111111111111111111111111111111111
168  2   0   2 0011111111111111111111111111111111111111111111111111111111111111
169  3   0   3 0001111111111111111111111111111111111111111111111111111111111111
170  4   0   4 0000111111111111111111111111111111111111111111111111111111111111
171  5   0   5 0000011111111111111111111111111111111111111111111111111111111111
172  6   0   6 0000001111111111111111111111111111111111111111111111111111111111
173  7   0   7 0000000111111111111111111111111111111111111111111111111111111111
174  8   0   8 0000000011111111111111111111111111111111111111111111111111111111
175  9   0   9 0000000001111111111111111111111111111111111111111111111111111111
176 10   0  10 0000000000111111111111111111111111111111111111111111111111111111
177 11   0  11 0000000000011111111111111111111111111111111111111111111111111111
178 12   0  12 0000000000001111111111111111111111111111111111111111111111111111
179 13   0  13 0000000000000111111111111111111111111111111111111111111111111111
180 14   0  14 0000000000000011111111111111111111111111111111111111111111111111
181 15   0  15 0000000000000001111111111111111111111111111111111111111111111111
182 16   0  16 0000000000000000111111111111111111111111111111111111111111111111
183 17   0  17 0000000000000000011111111111111111111111111111111111111111111111
184 18   0  18 0000000000000000001111111111111111111111111111111111111111111111
185 19   0  19 0000000000000000000111111111111111111111111111111111111111111111
186 20   0  20 0000000000000000000011111111111111111111111111111111111111111111
187 21   0  21 0000000000000000000001111111111111111111111111111111111111111111
188 22   0  22 0000000000000000000000111111111111111111111111111111111111111111
189 23   0  23 0000000000000000000000011111111111111111111111111111111111111111
190 24   0  24 0000000000000000000000001111111111111111111111111111111111111111
191 25   0  25 0000000000000000000000000111111111111111111111111111111111111111
192 26   0  26 0000000000000000000000000011111111111111111111111111111111111111
193 27   0  27 0000000000000000000000000001111111111111111111111111111111111111
194 28   0  28 0000000000000000000000000000111111111111111111111111111111111111
195 29   0  29 0000000000000000000000000000011111111111111111111111111111111111
196 30   0  30 0000000000000000000000000000001111111111111111111111111111111111
197 31   0  31 0000000000000000000000000000000111111111111111111111111111111111
198 32   0  32 0000000000000000000000000000000011111111111111111111111111111111
199 33   0  33 0000000000000000000000000000000001111111111111111111111111111111
200 34   0  34 0000000000000000000000000000000000111111111111111111111111111111
201 35   0  35 0000000000000000000000000000000000011111111111111111111111111111
202 36   0  36 0000000000000000000000000000000000001111111111111111111111111111
203 37   0  37 0000000000000000000000000000000000000111111111111111111111111111
204 38   0  38 0000000000000000000000000000000000000011111111111111111111111111
205 39   0  39 0000000000000000000000000000000000000001111111111111111111111111
206 40   0  40 0000000000000000000000000000000000000000111111111111111111111111
207 41   0  41 0000000000000000000000000000000000000000011111111111111111111111
208 42   0  42 0000000000000000000000000000000000000000001111111111111111111111
209 43   0  43 0000000000000000000000000000000000000000000111111111111111111111
210 44   0  44 0000000000000000000000000000000000000000000011111111111111111111
211 45   0  45 0000000000000000000000000000000000000000000001111111111111111111
212 46   0  46 0000000000000000000000000000000000000000000000111111111111111111
213 47   0  47 0000000000000000000000000000000000000000000000011111111111111111
214 48   0  48 0000000000000000000000000000000000000000000000001111111111111111
215 49   0  49 0000000000000000000000000000000000000000000000000111111111111111
216 50   0  50 0000000000000000000000000000000000000000000000000011111111111111
217 51   0  51 0000000000000000000000000000000000000000000000000001111111111111
218 52   0  52 0000000000000000000000000000000000000000000000000000111111111111
219 53   0  53 0000000000000000000000000000000000000000000000000000011111111111
220 54   0  54 0000000000000000000000000000000000000000000000000000001111111111
221 55   0  55 0000000000000000000000000000000000000000000000000000000111111111
222 56   0  56 0000000000000000000000000000000000000000000000000000000011111111
223 57   0  57 0000000000000000000000000000000000000000000000000000000001111111
224 58   0  58 0000000000000000000000000000000000000000000000000000000000111111
225 59   0  59 0000000000000000000000000000000000000000000000000000000000011111
226 60   0  60 0000000000000000000000000000000000000000000000000000000000001111
227 61   0  61 0000000000000000000000000000000000000000000000000000000000000111
228 62   0  62 0000000000000000000000000000000000000000000000000000000000000011
229 63   0  63 0000000000000000000000000000000000000000000000000000000000000001
230
231first 0 bit should move right 1 position each line
232  0   0  -1 0000000000000000000000000000000000000000000000000000000000000000
233  1   1   0 1000000000000000000000000000000000000000000000000000000000000000
234  2   2   0 1100000000000000000000000000000000000000000000000000000000000000
235  3   3   0 1110000000000000000000000000000000000000000000000000000000000000
236  4   4   0 1111000000000000000000000000000000000000000000000000000000000000
237  5   5   0 1111100000000000000000000000000000000000000000000000000000000000
238  6   6   0 1111110000000000000000000000000000000000000000000000000000000000
239  7   7   0 1111111000000000000000000000000000000000000000000000000000000000
240  8   8   0 1111111100000000000000000000000000000000000000000000000000000000
241  9   9   0 1111111110000000000000000000000000000000000000000000000000000000
242 10  10   0 1111111111000000000000000000000000000000000000000000000000000000
243 11  11   0 1111111111100000000000000000000000000000000000000000000000000000
244 12  12   0 1111111111110000000000000000000000000000000000000000000000000000
245 13  13   0 1111111111111000000000000000000000000000000000000000000000000000
246 14  14   0 1111111111111100000000000000000000000000000000000000000000000000
247 15  15   0 1111111111111110000000000000000000000000000000000000000000000000
248 16  16   0 1111111111111111000000000000000000000000000000000000000000000000
249 17  17   0 1111111111111111100000000000000000000000000000000000000000000000
250 18  18   0 1111111111111111110000000000000000000000000000000000000000000000
251 19  19   0 1111111111111111111000000000000000000000000000000000000000000000
252 20  20   0 1111111111111111111100000000000000000000000000000000000000000000
253 21  21   0 1111111111111111111110000000000000000000000000000000000000000000
254 22  22   0 1111111111111111111111000000000000000000000000000000000000000000
255 23  23   0 1111111111111111111111100000000000000000000000000000000000000000
256 24  24   0 1111111111111111111111110000000000000000000000000000000000000000
257 25  25   0 1111111111111111111111111000000000000000000000000000000000000000
258 26  26   0 1111111111111111111111111100000000000000000000000000000000000000
259 27  27   0 1111111111111111111111111110000000000000000000000000000000000000
260 28  28   0 1111111111111111111111111111000000000000000000000000000000000000
261 29  29   0 1111111111111111111111111111100000000000000000000000000000000000
262 30  30   0 1111111111111111111111111111110000000000000000000000000000000000
263 31  31   0 1111111111111111111111111111111000000000000000000000000000000000
264 32  32   0 1111111111111111111111111111111100000000000000000000000000000000
265 33  33   0 1111111111111111111111111111111110000000000000000000000000000000
266 34  34   0 1111111111111111111111111111111111000000000000000000000000000000
267 35  35   0 1111111111111111111111111111111111100000000000000000000000000000
268 36  36   0 1111111111111111111111111111111111110000000000000000000000000000
269 37  37   0 1111111111111111111111111111111111111000000000000000000000000000
270 38  38   0 1111111111111111111111111111111111111100000000000000000000000000
271 39  39   0 1111111111111111111111111111111111111110000000000000000000000000
272 40  40   0 1111111111111111111111111111111111111111000000000000000000000000
273 41  41   0 1111111111111111111111111111111111111111100000000000000000000000
274 42  42   0 1111111111111111111111111111111111111111110000000000000000000000
275 43  43   0 1111111111111111111111111111111111111111111000000000000000000000
276 44  44   0 1111111111111111111111111111111111111111111100000000000000000000
277 45  45   0 1111111111111111111111111111111111111111111110000000000000000000
278 46  46   0 1111111111111111111111111111111111111111111111000000000000000000
279 47  47   0 1111111111111111111111111111111111111111111111100000000000000000
280 48  48   0 1111111111111111111111111111111111111111111111110000000000000000
281 49  49   0 1111111111111111111111111111111111111111111111111000000000000000
282 50  50   0 1111111111111111111111111111111111111111111111111100000000000000
283 51  51   0 1111111111111111111111111111111111111111111111111110000000000000
284 52  52   0 1111111111111111111111111111111111111111111111111111000000000000
285 53  53   0 1111111111111111111111111111111111111111111111111111100000000000
286 54  54   0 1111111111111111111111111111111111111111111111111111110000000000
287 55  55   0 1111111111111111111111111111111111111111111111111111111000000000
288 56  56   0 1111111111111111111111111111111111111111111111111111111100000000
289 57  57   0 1111111111111111111111111111111111111111111111111111111110000000
290 58  58   0 1111111111111111111111111111111111111111111111111111111111000000
291 59  59   0 1111111111111111111111111111111111111111111111111111111111100000
292 60  60   0 1111111111111111111111111111111111111111111111111111111111110000
293 61  61   0 1111111111111111111111111111111111111111111111111111111111111000
294 62  62   0 1111111111111111111111111111111111111111111111111111111111111100
295 63  63   0 1111111111111111111111111111111111111111111111111111111111111110
296
297first 0 bit should move left 1 position each line
298  0  -1   0 1111111111111111111111111111111111111111111111111111111111111111
299  1  63   0 1111111111111111111111111111111111111111111111111111111111111110
300  2  62   0 1111111111111111111111111111111111111111111111111111111111111100
301  3  61   0 1111111111111111111111111111111111111111111111111111111111111000
302  4  60   0 1111111111111111111111111111111111111111111111111111111111110000
303  5  59   0 1111111111111111111111111111111111111111111111111111111111100000
304  6  58   0 1111111111111111111111111111111111111111111111111111111111000000
305  7  57   0 1111111111111111111111111111111111111111111111111111111110000000
306  8  56   0 1111111111111111111111111111111111111111111111111111111100000000
307  9  55   0 1111111111111111111111111111111111111111111111111111111000000000
308 10  54   0 1111111111111111111111111111111111111111111111111111110000000000
309 11  53   0 1111111111111111111111111111111111111111111111111111100000000000
310 12  52   0 1111111111111111111111111111111111111111111111111111000000000000
311 13  51   0 1111111111111111111111111111111111111111111111111110000000000000
312 14  50   0 1111111111111111111111111111111111111111111111111100000000000000
313 15  49   0 1111111111111111111111111111111111111111111111111000000000000000
314 16  48   0 1111111111111111111111111111111111111111111111110000000000000000
315 17  47   0 1111111111111111111111111111111111111111111111100000000000000000
316 18  46   0 1111111111111111111111111111111111111111111111000000000000000000
317 19  45   0 1111111111111111111111111111111111111111111110000000000000000000
318 20  44   0 1111111111111111111111111111111111111111111100000000000000000000
319 21  43   0 1111111111111111111111111111111111111111111000000000000000000000
320 22  42   0 1111111111111111111111111111111111111111110000000000000000000000
321 23  41   0 1111111111111111111111111111111111111111100000000000000000000000
322 24  40   0 1111111111111111111111111111111111111111000000000000000000000000
323 25  39   0 1111111111111111111111111111111111111110000000000000000000000000
324 26  38   0 1111111111111111111111111111111111111100000000000000000000000000
325 27  37   0 1111111111111111111111111111111111111000000000000000000000000000
326 28  36   0 1111111111111111111111111111111111110000000000000000000000000000
327 29  35   0 1111111111111111111111111111111111100000000000000000000000000000
328 30  34   0 1111111111111111111111111111111111000000000000000000000000000000
329 31  33   0 1111111111111111111111111111111110000000000000000000000000000000
330 32  32   0 1111111111111111111111111111111100000000000000000000000000000000
331 33  31   0 1111111111111111111111111111111000000000000000000000000000000000
332 34  30   0 1111111111111111111111111111110000000000000000000000000000000000
333 35  29   0 1111111111111111111111111111100000000000000000000000000000000000
334 36  28   0 1111111111111111111111111111000000000000000000000000000000000000
335 37  27   0 1111111111111111111111111110000000000000000000000000000000000000
336 38  26   0 1111111111111111111111111100000000000000000000000000000000000000
337 39  25   0 1111111111111111111111111000000000000000000000000000000000000000
338 40  24   0 1111111111111111111111110000000000000000000000000000000000000000
339 41  23   0 1111111111111111111111100000000000000000000000000000000000000000
340 42  22   0 1111111111111111111111000000000000000000000000000000000000000000
341 43  21   0 1111111111111111111110000000000000000000000000000000000000000000
342 44  20   0 1111111111111111111100000000000000000000000000000000000000000000
343 45  19   0 1111111111111111111000000000000000000000000000000000000000000000
344 46  18   0 1111111111111111110000000000000000000000000000000000000000000000
345 47  17   0 1111111111111111100000000000000000000000000000000000000000000000
346 48  16   0 1111111111111111000000000000000000000000000000000000000000000000
347 49  15   0 1111111111111110000000000000000000000000000000000000000000000000
348 50  14   0 1111111111111100000000000000000000000000000000000000000000000000
349 51  13   0 1111111111111000000000000000000000000000000000000000000000000000
350 52  12   0 1111111111110000000000000000000000000000000000000000000000000000
351 53  11   0 1111111111100000000000000000000000000000000000000000000000000000
352 54  10   0 1111111111000000000000000000000000000000000000000000000000000000
353 55   9   0 1111111110000000000000000000000000000000000000000000000000000000
354 56   8   0 1111111100000000000000000000000000000000000000000000000000000000
355 57   7   0 1111111000000000000000000000000000000000000000000000000000000000
356 58   6   0 1111110000000000000000000000000000000000000000000000000000000000
357 59   5   0 1111100000000000000000000000000000000000000000000000000000000000
358 60   4   0 1111000000000000000000000000000000000000000000000000000000000000
359 61   3   0 1110000000000000000000000000000000000000000000000000000000000000
360 62   2   0 1100000000000000000000000000000000000000000000000000000000000000
361 63   1   0 1000000000000000000000000000000000000000000000000000000000000000
362
363first 1 bit should move left 1 position each line
364  0   0  -1 0000000000000000000000000000000000000000000000000000000000000000
365  1   0  63 0000000000000000000000000000000000000000000000000000000000000001
366  2   0  62 0000000000000000000000000000000000000000000000000000000000000011
367  3   0  61 0000000000000000000000000000000000000000000000000000000000000111
368  4   0  60 0000000000000000000000000000000000000000000000000000000000001111
369  5   0  59 0000000000000000000000000000000000000000000000000000000000011111
370  6   0  58 0000000000000000000000000000000000000000000000000000000000111111
371  7   0  57 0000000000000000000000000000000000000000000000000000000001111111
372  8   0  56 0000000000000000000000000000000000000000000000000000000011111111
373  9   0  55 0000000000000000000000000000000000000000000000000000000111111111
374 10   0  54 0000000000000000000000000000000000000000000000000000001111111111
375 11   0  53 0000000000000000000000000000000000000000000000000000011111111111
376 12   0  52 0000000000000000000000000000000000000000000000000000111111111111
377 13   0  51 0000000000000000000000000000000000000000000000000001111111111111
378 14   0  50 0000000000000000000000000000000000000000000000000011111111111111
379 15   0  49 0000000000000000000000000000000000000000000000000111111111111111
380 16   0  48 0000000000000000000000000000000000000000000000001111111111111111
381 17   0  47 0000000000000000000000000000000000000000000000011111111111111111
382 18   0  46 0000000000000000000000000000000000000000000000111111111111111111
383 19   0  45 0000000000000000000000000000000000000000000001111111111111111111
384 20   0  44 0000000000000000000000000000000000000000000011111111111111111111
385 21   0  43 0000000000000000000000000000000000000000000111111111111111111111
386 22   0  42 0000000000000000000000000000000000000000001111111111111111111111
387 23   0  41 0000000000000000000000000000000000000000011111111111111111111111
388 24   0  40 0000000000000000000000000000000000000000111111111111111111111111
389 25   0  39 0000000000000000000000000000000000000001111111111111111111111111
390 26   0  38 0000000000000000000000000000000000000011111111111111111111111111
391 27   0  37 0000000000000000000000000000000000000111111111111111111111111111
392 28   0  36 0000000000000000000000000000000000001111111111111111111111111111
393 29   0  35 0000000000000000000000000000000000011111111111111111111111111111
394 30   0  34 0000000000000000000000000000000000111111111111111111111111111111
395 31   0  33 0000000000000000000000000000000001111111111111111111111111111111
396 32   0  32 0000000000000000000000000000000011111111111111111111111111111111
397 33   0  31 0000000000000000000000000000000111111111111111111111111111111111
398 34   0  30 0000000000000000000000000000001111111111111111111111111111111111
399 35   0  29 0000000000000000000000000000011111111111111111111111111111111111
400 36   0  28 0000000000000000000000000000111111111111111111111111111111111111
401 37   0  27 0000000000000000000000000001111111111111111111111111111111111111
402 38   0  26 0000000000000000000000000011111111111111111111111111111111111111
403 39   0  25 0000000000000000000000000111111111111111111111111111111111111111
404 40   0  24 0000000000000000000000001111111111111111111111111111111111111111
405 41   0  23 0000000000000000000000011111111111111111111111111111111111111111
406 42   0  22 0000000000000000000000111111111111111111111111111111111111111111
407 43   0  21 0000000000000000000001111111111111111111111111111111111111111111
408 44   0  20 0000000000000000000011111111111111111111111111111111111111111111
409 45   0  19 0000000000000000000111111111111111111111111111111111111111111111
410 46   0  18 0000000000000000001111111111111111111111111111111111111111111111
411 47   0  17 0000000000000000011111111111111111111111111111111111111111111111
412 48   0  16 0000000000000000111111111111111111111111111111111111111111111111
413 49   0  15 0000000000000001111111111111111111111111111111111111111111111111
414 50   0  14 0000000000000011111111111111111111111111111111111111111111111111
415 51   0  13 0000000000000111111111111111111111111111111111111111111111111111
416 52   0  12 0000000000001111111111111111111111111111111111111111111111111111
417 53   0  11 0000000000011111111111111111111111111111111111111111111111111111
418 54   0  10 0000000000111111111111111111111111111111111111111111111111111111
419 55   0   9 0000000001111111111111111111111111111111111111111111111111111111
420 56   0   8 0000000011111111111111111111111111111111111111111111111111111111
421 57   0   7 0000000111111111111111111111111111111111111111111111111111111111
422 58   0   6 0000001111111111111111111111111111111111111111111111111111111111
423 59   0   5 0000011111111111111111111111111111111111111111111111111111111111
424 60   0   4 0000111111111111111111111111111111111111111111111111111111111111
425 61   0   3 0001111111111111111111111111111111111111111111111111111111111111
426 62   0   2 0011111111111111111111111111111111111111111111111111111111111111
427 63   0   1 0111111111111111111111111111111111111111111111111111111111111111
428
4290 bit should move right 1 position each line
430  0   0   1 0111111111111111111111111111111111111111111111111111111111111111
431  1   1   0 1011111111111111111111111111111111111111111111111111111111111111
432  2   2   0 1101111111111111111111111111111111111111111111111111111111111111
433  3   3   0 1110111111111111111111111111111111111111111111111111111111111111
434  4   4   0 1111011111111111111111111111111111111111111111111111111111111111
435  5   5   0 1111101111111111111111111111111111111111111111111111111111111111
436  6   6   0 1111110111111111111111111111111111111111111111111111111111111111
437  7   7   0 1111111011111111111111111111111111111111111111111111111111111111
438  8   8   0 1111111101111111111111111111111111111111111111111111111111111111
439  9   9   0 1111111110111111111111111111111111111111111111111111111111111111
440 10  10   0 1111111111011111111111111111111111111111111111111111111111111111
441 11  11   0 1111111111101111111111111111111111111111111111111111111111111111
442 12  12   0 1111111111110111111111111111111111111111111111111111111111111111
443 13  13   0 1111111111111011111111111111111111111111111111111111111111111111
444 14  14   0 1111111111111101111111111111111111111111111111111111111111111111
445 15  15   0 1111111111111110111111111111111111111111111111111111111111111111
446 16  16   0 1111111111111111011111111111111111111111111111111111111111111111
447 17  17   0 1111111111111111101111111111111111111111111111111111111111111111
448 18  18   0 1111111111111111110111111111111111111111111111111111111111111111
449 19  19   0 1111111111111111111011111111111111111111111111111111111111111111
450 20  20   0 1111111111111111111101111111111111111111111111111111111111111111
451 21  21   0 1111111111111111111110111111111111111111111111111111111111111111
452 22  22   0 1111111111111111111111011111111111111111111111111111111111111111
453 23  23   0 1111111111111111111111101111111111111111111111111111111111111111
454 24  24   0 1111111111111111111111110111111111111111111111111111111111111111
455 25  25   0 1111111111111111111111111011111111111111111111111111111111111111
456 26  26   0 1111111111111111111111111101111111111111111111111111111111111111
457 27  27   0 1111111111111111111111111110111111111111111111111111111111111111
458 28  28   0 1111111111111111111111111111011111111111111111111111111111111111
459 29  29   0 1111111111111111111111111111101111111111111111111111111111111111
460 30  30   0 1111111111111111111111111111110111111111111111111111111111111111
461 31  31   0 1111111111111111111111111111111011111111111111111111111111111111
462 32  32   0 1111111111111111111111111111111101111111111111111111111111111111
463 33  33   0 1111111111111111111111111111111110111111111111111111111111111111
464 34  34   0 1111111111111111111111111111111111011111111111111111111111111111
465 35  35   0 1111111111111111111111111111111111101111111111111111111111111111
466 36  36   0 1111111111111111111111111111111111110111111111111111111111111111
467 37  37   0 1111111111111111111111111111111111111011111111111111111111111111
468 38  38   0 1111111111111111111111111111111111111101111111111111111111111111
469 39  39   0 1111111111111111111111111111111111111110111111111111111111111111
470 40  40   0 1111111111111111111111111111111111111111011111111111111111111111
471 41  41   0 1111111111111111111111111111111111111111101111111111111111111111
472 42  42   0 1111111111111111111111111111111111111111110111111111111111111111
473 43  43   0 1111111111111111111111111111111111111111111011111111111111111111
474 44  44   0 1111111111111111111111111111111111111111111101111111111111111111
475 45  45   0 1111111111111111111111111111111111111111111110111111111111111111
476 46  46   0 1111111111111111111111111111111111111111111111011111111111111111
477 47  47   0 1111111111111111111111111111111111111111111111101111111111111111
478 48  48   0 1111111111111111111111111111111111111111111111110111111111111111
479 49  49   0 1111111111111111111111111111111111111111111111111011111111111111
480 50  50   0 1111111111111111111111111111111111111111111111111101111111111111
481 51  51   0 1111111111111111111111111111111111111111111111111110111111111111
482 52  52   0 1111111111111111111111111111111111111111111111111111011111111111
483 53  53   0 1111111111111111111111111111111111111111111111111111101111111111
484 54  54   0 1111111111111111111111111111111111111111111111111111110111111111
485 55  55   0 1111111111111111111111111111111111111111111111111111111011111111
486 56  56   0 1111111111111111111111111111111111111111111111111111111101111111
487 57  57   0 1111111111111111111111111111111111111111111111111111111110111111
488 58  58   0 1111111111111111111111111111111111111111111111111111111111011111
489 59  59   0 1111111111111111111111111111111111111111111111111111111111101111
490 60  60   0 1111111111111111111111111111111111111111111111111111111111110111
491 61  61   0 1111111111111111111111111111111111111111111111111111111111111011
492 62  62   0 1111111111111111111111111111111111111111111111111111111111111101
493 63  63   0 1111111111111111111111111111111111111111111111111111111111111110
494
4951 bit should move right 1 position each line
496  0   1   0 1000000000000000000000000000000000000000000000000000000000000000
497  1   0   1 0100000000000000000000000000000000000000000000000000000000000000
498  2   0   2 0010000000000000000000000000000000000000000000000000000000000000
499  3   0   3 0001000000000000000000000000000000000000000000000000000000000000
500  4   0   4 0000100000000000000000000000000000000000000000000000000000000000
501  5   0   5 0000010000000000000000000000000000000000000000000000000000000000
502  6   0   6 0000001000000000000000000000000000000000000000000000000000000000
503  7   0   7 0000000100000000000000000000000000000000000000000000000000000000
504  8   0   8 0000000010000000000000000000000000000000000000000000000000000000
505  9   0   9 0000000001000000000000000000000000000000000000000000000000000000
506 10   0  10 0000000000100000000000000000000000000000000000000000000000000000
507 11   0  11 0000000000010000000000000000000000000000000000000000000000000000
508 12   0  12 0000000000001000000000000000000000000000000000000000000000000000
509 13   0  13 0000000000000100000000000000000000000000000000000000000000000000
510 14   0  14 0000000000000010000000000000000000000000000000000000000000000000
511 15   0  15 0000000000000001000000000000000000000000000000000000000000000000
512 16   0  16 0000000000000000100000000000000000000000000000000000000000000000
513 17   0  17 0000000000000000010000000000000000000000000000000000000000000000
514 18   0  18 0000000000000000001000000000000000000000000000000000000000000000
515 19   0  19 0000000000000000000100000000000000000000000000000000000000000000
516 20   0  20 0000000000000000000010000000000000000000000000000000000000000000
517 21   0  21 0000000000000000000001000000000000000000000000000000000000000000
518 22   0  22 0000000000000000000000100000000000000000000000000000000000000000
519 23   0  23 0000000000000000000000010000000000000000000000000000000000000000
520 24   0  24 0000000000000000000000001000000000000000000000000000000000000000
521 25   0  25 0000000000000000000000000100000000000000000000000000000000000000
522 26   0  26 0000000000000000000000000010000000000000000000000000000000000000
523 27   0  27 0000000000000000000000000001000000000000000000000000000000000000
524 28   0  28 0000000000000000000000000000100000000000000000000000000000000000
525 29   0  29 0000000000000000000000000000010000000000000000000000000000000000
526 30   0  30 0000000000000000000000000000001000000000000000000000000000000000
527 31   0  31 0000000000000000000000000000000100000000000000000000000000000000
528 32   0  32 0000000000000000000000000000000010000000000000000000000000000000
529 33   0  33 0000000000000000000000000000000001000000000000000000000000000000
530 34   0  34 0000000000000000000000000000000000100000000000000000000000000000
531 35   0  35 0000000000000000000000000000000000010000000000000000000000000000
532 36   0  36 0000000000000000000000000000000000001000000000000000000000000000
533 37   0  37 0000000000000000000000000000000000000100000000000000000000000000
534 38   0  38 0000000000000000000000000000000000000010000000000000000000000000
535 39   0  39 0000000000000000000000000000000000000001000000000000000000000000
536 40   0  40 0000000000000000000000000000000000000000100000000000000000000000
537 41   0  41 0000000000000000000000000000000000000000010000000000000000000000
538 42   0  42 0000000000000000000000000000000000000000001000000000000000000000
539 43   0  43 0000000000000000000000000000000000000000000100000000000000000000
540 44   0  44 0000000000000000000000000000000000000000000010000000000000000000
541 45   0  45 0000000000000000000000000000000000000000000001000000000000000000
542 46   0  46 0000000000000000000000000000000000000000000000100000000000000000
543 47   0  47 0000000000000000000000000000000000000000000000010000000000000000
544 48   0  48 0000000000000000000000000000000000000000000000001000000000000000
545 49   0  49 0000000000000000000000000000000000000000000000000100000000000000
546 50   0  50 0000000000000000000000000000000000000000000000000010000000000000
547 51   0  51 0000000000000000000000000000000000000000000000000001000000000000
548 52   0  52 0000000000000000000000000000000000000000000000000000100000000000
549 53   0  53 0000000000000000000000000000000000000000000000000000010000000000
550 54   0  54 0000000000000000000000000000000000000000000000000000001000000000
551 55   0  55 0000000000000000000000000000000000000000000000000000000100000000
552 56   0  56 0000000000000000000000000000000000000000000000000000000010000000
553 57   0  57 0000000000000000000000000000000000000000000000000000000001000000
554 58   0  58 0000000000000000000000000000000000000000000000000000000000100000
555 59   0  59 0000000000000000000000000000000000000000000000000000000000010000
556 60   0  60 0000000000000000000000000000000000000000000000000000000000001000
557 61   0  61 0000000000000000000000000000000000000000000000000000000000000100
558 62   0  62 0000000000000000000000000000000000000000000000000000000000000010
559 63   0  63 0000000000000000000000000000000000000000000000000000000000000001
560