11.1SjmmvTesting with TEST_LENGTH = 32 21.1Sjmmv 31.1Sjmmvtest _bit_byte, _bit_mask, and bitstr_size 41.1Sjmmv i _bit_byte(i) _bit_mask(i) bitstr_size(i) 51.1Sjmmv 0 0 1 0 61.1Sjmmv 1 0 2 1 71.1Sjmmv 2 0 4 1 81.1Sjmmv 3 0 8 1 91.1Sjmmv 4 0 16 1 101.1Sjmmv 5 0 32 1 111.1Sjmmv 6 0 64 1 121.1Sjmmv 7 0 128 1 131.1Sjmmv 8 1 1 1 141.1Sjmmv 9 1 2 2 151.1Sjmmv 10 1 4 2 161.1Sjmmv 11 1 8 2 171.1Sjmmv 12 1 16 2 181.1Sjmmv 13 1 32 2 191.1Sjmmv 14 1 64 2 201.1Sjmmv 15 1 128 2 211.1Sjmmv 16 2 1 2 221.1Sjmmv 17 2 2 3 231.1Sjmmv 18 2 4 3 241.1Sjmmv 19 2 8 3 251.1Sjmmv 20 2 16 3 261.1Sjmmv 21 2 32 3 271.1Sjmmv 22 2 64 3 281.1Sjmmv 23 2 128 3 291.1Sjmmv 24 3 1 3 301.1Sjmmv 25 3 2 4 311.1Sjmmv 26 3 4 4 321.1Sjmmv 27 3 8 4 331.1Sjmmv 28 3 16 4 341.1Sjmmv 29 3 32 4 351.1Sjmmv 30 3 64 4 361.1Sjmmv 31 3 128 4 371.1Sjmmv 381.1Sjmmvtest bit_alloc, clearbits, bit_ffc, bit_ffs 391.1Sjmmvbe: 0 -1 00000000000000000000000000000000 401.1Sjmmvis: 0 -1 00000000000000000000000000000000 411.1Sjmmv 421.1Sjmmvtest bit_set 431.1Sjmmvbe: 1 0 10010010010010010010010010010010 441.1Sjmmvis: 1 0 10010010010010010010010010010010 451.1Sjmmv 461.1Sjmmvtest bit_clear 471.1Sjmmvbe: 0 3 00010000010000010000010000010000 481.1Sjmmvis: 0 3 00010000010000010000010000010000 491.1Sjmmv 501.1Sjmmvtest bit_test using previous bitstring 511.1Sjmmv i bit_test(i) 521.1Sjmmv 0 0 531.1Sjmmv 1 0 541.1Sjmmv 2 0 551.1Sjmmv 3 8 561.1Sjmmv 4 0 571.1Sjmmv 5 0 581.1Sjmmv 6 0 591.1Sjmmv 7 0 601.1Sjmmv 8 0 611.1Sjmmv 9 2 621.1Sjmmv 10 0 631.1Sjmmv 11 0 641.1Sjmmv 12 0 651.1Sjmmv 13 0 661.1Sjmmv 14 0 671.1Sjmmv 15 128 681.1Sjmmv 16 0 691.1Sjmmv 17 0 701.1Sjmmv 18 0 711.1Sjmmv 19 0 721.1Sjmmv 20 0 731.1Sjmmv 21 32 741.1Sjmmv 22 0 751.1Sjmmv 23 0 761.1Sjmmv 24 0 771.1Sjmmv 25 0 781.1Sjmmv 26 0 791.1Sjmmv 27 8 801.1Sjmmv 28 0 811.1Sjmmv 29 0 821.1Sjmmv 30 0 831.1Sjmmv 31 0 841.1Sjmmv 851.1Sjmmvtest clearbits 861.1Sjmmvbe: 0 -1 00000000000000000000000000000000 871.1Sjmmvis: 0 -1 00000000000000000000000000000000 881.1Sjmmv 891.1Sjmmvtest bit_nset and bit_nclear 901.1Sjmmvbe: 0 1 01111111111111111111111111111110 911.1Sjmmvis: 0 1 01111111111111111111111111111110 921.1Sjmmvbe: 0 1 01000000000000000000000000000010 931.1Sjmmvis: 0 1 01000000000000000000000000000010 941.1Sjmmvbe: 0 -1 00000000000000000000000000000000 951.1Sjmmvis: 0 -1 00000000000000000000000000000000 961.1Sjmmvbe: 31 0 11111111111111111111111111111110 971.1Sjmmvis: 31 0 11111111111111111111111111111110 981.1Sjmmvbe: 0 -1 00000000000000000000000000000000 991.1Sjmmvis: 0 -1 00000000000000000000000000000000 1001.1Sjmmv 1011.1Sjmmvfirst 1 bit should move right 1 position each line 1021.1Sjmmv 0 -1 0 11111111111111111111111111111111 1031.1Sjmmv 1 0 1 01111111111111111111111111111111 1041.1Sjmmv 2 0 2 00111111111111111111111111111111 1051.1Sjmmv 3 0 3 00011111111111111111111111111111 1061.1Sjmmv 4 0 4 00001111111111111111111111111111 1071.1Sjmmv 5 0 5 00000111111111111111111111111111 1081.1Sjmmv 6 0 6 00000011111111111111111111111111 1091.1Sjmmv 7 0 7 00000001111111111111111111111111 1101.1Sjmmv 8 0 8 00000000111111111111111111111111 1111.1Sjmmv 9 0 9 00000000011111111111111111111111 1121.1Sjmmv 10 0 10 00000000001111111111111111111111 1131.1Sjmmv 11 0 11 00000000000111111111111111111111 1141.1Sjmmv 12 0 12 00000000000011111111111111111111 1151.1Sjmmv 13 0 13 00000000000001111111111111111111 1161.1Sjmmv 14 0 14 00000000000000111111111111111111 1171.1Sjmmv 15 0 15 00000000000000011111111111111111 1181.1Sjmmv 16 0 16 00000000000000001111111111111111 1191.1Sjmmv 17 0 17 00000000000000000111111111111111 1201.1Sjmmv 18 0 18 00000000000000000011111111111111 1211.1Sjmmv 19 0 19 00000000000000000001111111111111 1221.1Sjmmv 20 0 20 00000000000000000000111111111111 1231.1Sjmmv 21 0 21 00000000000000000000011111111111 1241.1Sjmmv 22 0 22 00000000000000000000001111111111 1251.1Sjmmv 23 0 23 00000000000000000000000111111111 1261.1Sjmmv 24 0 24 00000000000000000000000011111111 1271.1Sjmmv 25 0 25 00000000000000000000000001111111 1281.1Sjmmv 26 0 26 00000000000000000000000000111111 1291.1Sjmmv 27 0 27 00000000000000000000000000011111 1301.1Sjmmv 28 0 28 00000000000000000000000000001111 1311.1Sjmmv 29 0 29 00000000000000000000000000000111 1321.1Sjmmv 30 0 30 00000000000000000000000000000011 1331.1Sjmmv 31 0 31 00000000000000000000000000000001 1341.1Sjmmv 1351.1Sjmmvfirst 0 bit should move right 1 position each line 1361.1Sjmmv 0 0 -1 00000000000000000000000000000000 1371.1Sjmmv 1 1 0 10000000000000000000000000000000 1381.1Sjmmv 2 2 0 11000000000000000000000000000000 1391.1Sjmmv 3 3 0 11100000000000000000000000000000 1401.1Sjmmv 4 4 0 11110000000000000000000000000000 1411.1Sjmmv 5 5 0 11111000000000000000000000000000 1421.1Sjmmv 6 6 0 11111100000000000000000000000000 1431.1Sjmmv 7 7 0 11111110000000000000000000000000 1441.1Sjmmv 8 8 0 11111111000000000000000000000000 1451.1Sjmmv 9 9 0 11111111100000000000000000000000 1461.1Sjmmv 10 10 0 11111111110000000000000000000000 1471.1Sjmmv 11 11 0 11111111111000000000000000000000 1481.1Sjmmv 12 12 0 11111111111100000000000000000000 1491.1Sjmmv 13 13 0 11111111111110000000000000000000 1501.1Sjmmv 14 14 0 11111111111111000000000000000000 1511.1Sjmmv 15 15 0 11111111111111100000000000000000 1521.1Sjmmv 16 16 0 11111111111111110000000000000000 1531.1Sjmmv 17 17 0 11111111111111111000000000000000 1541.1Sjmmv 18 18 0 11111111111111111100000000000000 1551.1Sjmmv 19 19 0 11111111111111111110000000000000 1561.1Sjmmv 20 20 0 11111111111111111111000000000000 1571.1Sjmmv 21 21 0 11111111111111111111100000000000 1581.1Sjmmv 22 22 0 11111111111111111111110000000000 1591.1Sjmmv 23 23 0 11111111111111111111111000000000 1601.1Sjmmv 24 24 0 11111111111111111111111100000000 1611.1Sjmmv 25 25 0 11111111111111111111111110000000 1621.1Sjmmv 26 26 0 11111111111111111111111111000000 1631.1Sjmmv 27 27 0 11111111111111111111111111100000 1641.1Sjmmv 28 28 0 11111111111111111111111111110000 1651.1Sjmmv 29 29 0 11111111111111111111111111111000 1661.1Sjmmv 30 30 0 11111111111111111111111111111100 1671.1Sjmmv 31 31 0 11111111111111111111111111111110 1681.1Sjmmv 1691.1Sjmmvfirst 0 bit should move left 1 position each line 1701.1Sjmmv 0 -1 0 11111111111111111111111111111111 1711.1Sjmmv 1 31 0 11111111111111111111111111111110 1721.1Sjmmv 2 30 0 11111111111111111111111111111100 1731.1Sjmmv 3 29 0 11111111111111111111111111111000 1741.1Sjmmv 4 28 0 11111111111111111111111111110000 1751.1Sjmmv 5 27 0 11111111111111111111111111100000 1761.1Sjmmv 6 26 0 11111111111111111111111111000000 1771.1Sjmmv 7 25 0 11111111111111111111111110000000 1781.1Sjmmv 8 24 0 11111111111111111111111100000000 1791.1Sjmmv 9 23 0 11111111111111111111111000000000 1801.1Sjmmv 10 22 0 11111111111111111111110000000000 1811.1Sjmmv 11 21 0 11111111111111111111100000000000 1821.1Sjmmv 12 20 0 11111111111111111111000000000000 1831.1Sjmmv 13 19 0 11111111111111111110000000000000 1841.1Sjmmv 14 18 0 11111111111111111100000000000000 1851.1Sjmmv 15 17 0 11111111111111111000000000000000 1861.1Sjmmv 16 16 0 11111111111111110000000000000000 1871.1Sjmmv 17 15 0 11111111111111100000000000000000 1881.1Sjmmv 18 14 0 11111111111111000000000000000000 1891.1Sjmmv 19 13 0 11111111111110000000000000000000 1901.1Sjmmv 20 12 0 11111111111100000000000000000000 1911.1Sjmmv 21 11 0 11111111111000000000000000000000 1921.1Sjmmv 22 10 0 11111111110000000000000000000000 1931.1Sjmmv 23 9 0 11111111100000000000000000000000 1941.1Sjmmv 24 8 0 11111111000000000000000000000000 1951.1Sjmmv 25 7 0 11111110000000000000000000000000 1961.1Sjmmv 26 6 0 11111100000000000000000000000000 1971.1Sjmmv 27 5 0 11111000000000000000000000000000 1981.1Sjmmv 28 4 0 11110000000000000000000000000000 1991.1Sjmmv 29 3 0 11100000000000000000000000000000 2001.1Sjmmv 30 2 0 11000000000000000000000000000000 2011.1Sjmmv 31 1 0 10000000000000000000000000000000 2021.1Sjmmv 2031.1Sjmmvfirst 1 bit should move left 1 position each line 2041.1Sjmmv 0 0 -1 00000000000000000000000000000000 2051.1Sjmmv 1 0 31 00000000000000000000000000000001 2061.1Sjmmv 2 0 30 00000000000000000000000000000011 2071.1Sjmmv 3 0 29 00000000000000000000000000000111 2081.1Sjmmv 4 0 28 00000000000000000000000000001111 2091.1Sjmmv 5 0 27 00000000000000000000000000011111 2101.1Sjmmv 6 0 26 00000000000000000000000000111111 2111.1Sjmmv 7 0 25 00000000000000000000000001111111 2121.1Sjmmv 8 0 24 00000000000000000000000011111111 2131.1Sjmmv 9 0 23 00000000000000000000000111111111 2141.1Sjmmv 10 0 22 00000000000000000000001111111111 2151.1Sjmmv 11 0 21 00000000000000000000011111111111 2161.1Sjmmv 12 0 20 00000000000000000000111111111111 2171.1Sjmmv 13 0 19 00000000000000000001111111111111 2181.1Sjmmv 14 0 18 00000000000000000011111111111111 2191.1Sjmmv 15 0 17 00000000000000000111111111111111 2201.1Sjmmv 16 0 16 00000000000000001111111111111111 2211.1Sjmmv 17 0 15 00000000000000011111111111111111 2221.1Sjmmv 18 0 14 00000000000000111111111111111111 2231.1Sjmmv 19 0 13 00000000000001111111111111111111 2241.1Sjmmv 20 0 12 00000000000011111111111111111111 2251.1Sjmmv 21 0 11 00000000000111111111111111111111 2261.1Sjmmv 22 0 10 00000000001111111111111111111111 2271.1Sjmmv 23 0 9 00000000011111111111111111111111 2281.1Sjmmv 24 0 8 00000000111111111111111111111111 2291.1Sjmmv 25 0 7 00000001111111111111111111111111 2301.1Sjmmv 26 0 6 00000011111111111111111111111111 2311.1Sjmmv 27 0 5 00000111111111111111111111111111 2321.1Sjmmv 28 0 4 00001111111111111111111111111111 2331.1Sjmmv 29 0 3 00011111111111111111111111111111 2341.1Sjmmv 30 0 2 00111111111111111111111111111111 2351.1Sjmmv 31 0 1 01111111111111111111111111111111 2361.1Sjmmv 2371.1Sjmmv0 bit should move right 1 position each line 2381.1Sjmmv 0 0 1 01111111111111111111111111111111 2391.1Sjmmv 1 1 0 10111111111111111111111111111111 2401.1Sjmmv 2 2 0 11011111111111111111111111111111 2411.1Sjmmv 3 3 0 11101111111111111111111111111111 2421.1Sjmmv 4 4 0 11110111111111111111111111111111 2431.1Sjmmv 5 5 0 11111011111111111111111111111111 2441.1Sjmmv 6 6 0 11111101111111111111111111111111 2451.1Sjmmv 7 7 0 11111110111111111111111111111111 2461.1Sjmmv 8 8 0 11111111011111111111111111111111 2471.1Sjmmv 9 9 0 11111111101111111111111111111111 2481.1Sjmmv 10 10 0 11111111110111111111111111111111 2491.1Sjmmv 11 11 0 11111111111011111111111111111111 2501.1Sjmmv 12 12 0 11111111111101111111111111111111 2511.1Sjmmv 13 13 0 11111111111110111111111111111111 2521.1Sjmmv 14 14 0 11111111111111011111111111111111 2531.1Sjmmv 15 15 0 11111111111111101111111111111111 2541.1Sjmmv 16 16 0 11111111111111110111111111111111 2551.1Sjmmv 17 17 0 11111111111111111011111111111111 2561.1Sjmmv 18 18 0 11111111111111111101111111111111 2571.1Sjmmv 19 19 0 11111111111111111110111111111111 2581.1Sjmmv 20 20 0 11111111111111111111011111111111 2591.1Sjmmv 21 21 0 11111111111111111111101111111111 2601.1Sjmmv 22 22 0 11111111111111111111110111111111 2611.1Sjmmv 23 23 0 11111111111111111111111011111111 2621.1Sjmmv 24 24 0 11111111111111111111111101111111 2631.1Sjmmv 25 25 0 11111111111111111111111110111111 2641.1Sjmmv 26 26 0 11111111111111111111111111011111 2651.1Sjmmv 27 27 0 11111111111111111111111111101111 2661.1Sjmmv 28 28 0 11111111111111111111111111110111 2671.1Sjmmv 29 29 0 11111111111111111111111111111011 2681.1Sjmmv 30 30 0 11111111111111111111111111111101 2691.1Sjmmv 31 31 0 11111111111111111111111111111110 2701.1Sjmmv 2711.1Sjmmv1 bit should move right 1 position each line 2721.1Sjmmv 0 1 0 10000000000000000000000000000000 2731.1Sjmmv 1 0 1 01000000000000000000000000000000 2741.1Sjmmv 2 0 2 00100000000000000000000000000000 2751.1Sjmmv 3 0 3 00010000000000000000000000000000 2761.1Sjmmv 4 0 4 00001000000000000000000000000000 2771.1Sjmmv 5 0 5 00000100000000000000000000000000 2781.1Sjmmv 6 0 6 00000010000000000000000000000000 2791.1Sjmmv 7 0 7 00000001000000000000000000000000 2801.1Sjmmv 8 0 8 00000000100000000000000000000000 2811.1Sjmmv 9 0 9 00000000010000000000000000000000 2821.1Sjmmv 10 0 10 00000000001000000000000000000000 2831.1Sjmmv 11 0 11 00000000000100000000000000000000 2841.1Sjmmv 12 0 12 00000000000010000000000000000000 2851.1Sjmmv 13 0 13 00000000000001000000000000000000 2861.1Sjmmv 14 0 14 00000000000000100000000000000000 2871.1Sjmmv 15 0 15 00000000000000010000000000000000 2881.1Sjmmv 16 0 16 00000000000000001000000000000000 2891.1Sjmmv 17 0 17 00000000000000000100000000000000 2901.1Sjmmv 18 0 18 00000000000000000010000000000000 2911.1Sjmmv 19 0 19 00000000000000000001000000000000 2921.1Sjmmv 20 0 20 00000000000000000000100000000000 2931.1Sjmmv 21 0 21 00000000000000000000010000000000 2941.1Sjmmv 22 0 22 00000000000000000000001000000000 2951.1Sjmmv 23 0 23 00000000000000000000000100000000 2961.1Sjmmv 24 0 24 00000000000000000000000010000000 2971.1Sjmmv 25 0 25 00000000000000000000000001000000 2981.1Sjmmv 26 0 26 00000000000000000000000000100000 2991.1Sjmmv 27 0 27 00000000000000000000000000010000 3001.1Sjmmv 28 0 28 00000000000000000000000000001000 3011.1Sjmmv 29 0 29 00000000000000000000000000000100 3021.1Sjmmv 30 0 30 00000000000000000000000000000010 3031.1Sjmmv 31 0 31 00000000000000000000000000000001 304