Home | History | Annotate | Line # | Download | only in include
      1 Testing with TEST_LENGTH = 64
      2 
      3 test _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 
     70 test bit_alloc, clearbits, bit_ffc, bit_ffs
     71 be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
     72 is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
     73 
     74 test bit_set
     75 be:   1   0 1001001001001001001001001001001001001001001001001001001001001001
     76 is:   1   0 1001001001001001001001001001001001001001001001001001001001001001
     77 
     78 test bit_clear
     79 be:   0   3 0001000001000001000001000001000001000001000001000001000001000001
     80 is:   0   3 0001000001000001000001000001000001000001000001000001000001000001
     81 
     82 test 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 
    149 test clearbits
    150 be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    151 is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    152 
    153 test bit_nset and bit_nclear
    154 be:   0   1 0111111111111111111111111111111111111111111111111111111111111110
    155 is:   0   1 0111111111111111111111111111111111111111111111111111111111111110
    156 be:   0   1 0100000000000000000000000000000000000000000000000000000000000010
    157 is:   0   1 0100000000000000000000000000000000000000000000000000000000000010
    158 be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    159 is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    160 be:  63   0 1111111111111111111111111111111111111111111111111111111111111110
    161 is:  63   0 1111111111111111111111111111111111111111111111111111111111111110
    162 be:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    163 is:   0  -1 0000000000000000000000000000000000000000000000000000000000000000
    164 
    165 first 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 
    231 first 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 
    297 first 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 
    363 first 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 
    429 0 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 
    495 1 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