|
45 | 45 |
|
46 | 46 |
|
47 | 47 | def __part1by1(n):
|
48 |
| - n &= 0x0000ffff |
49 |
| - n = (n | (n << 8)) & 0x00FF00FF |
50 |
| - n = (n | (n << 4)) & 0x0F0F0F0F |
51 |
| - n = (n | (n << 2)) & 0x33333333 |
52 |
| - n = (n | (n << 1)) & 0x55555555 |
| 48 | + n &= 0x0000ffff # base10: 65535, binary: 1111111111111111, len: 16 |
| 49 | + n = (n | (n << 8)) & 0x00FF00FF # base10: 16711935, binary: 111111110000000011111111, len: 24 |
| 50 | + n = (n | (n << 4)) & 0x0F0F0F0F # base10: 252645135, binary: 1111000011110000111100001111, len: 28 |
| 51 | + n = (n | (n << 2)) & 0x33333333 # base10: 858993459, binary: 110011001100110011001100110011, len: 30 |
| 52 | + n = (n | (n << 1)) & 0x55555555 # base10: 1431655765, binary: 1010101010101010101010101010101, len: 31 |
53 | 53 | return n
|
54 | 54 |
|
55 | 55 |
|
56 | 56 | def __part1by2(n):
|
57 |
| - n &= 0x000003ff |
58 |
| - n = (n ^ (n << 16)) & 0xff0000ff |
59 |
| - n = (n ^ (n << 8)) & 0x0300f00f |
60 |
| - n = (n ^ (n << 4)) & 0x030c30c3 |
61 |
| - n = (n ^ (n << 2)) & 0x09249249 |
| 57 | + n &= 0x000003ff # base10: 1023, binary: 1111111111, len: 10 |
| 58 | + n = (n ^ (n << 16)) & 0xff0000ff # base10: 4278190335, binary: 11111111000000000000000011111111, len: 32 |
| 59 | + n = (n ^ (n << 8)) & 0x0300f00f # base10: 50393103, binary: 11000000001111000000001111, len: 26 |
| 60 | + n = (n ^ (n << 4)) & 0x030c30c3 # base10: 51130563, binary: 11000011000011000011000011, len: 26 |
| 61 | + n = (n ^ (n << 2)) & 0x09249249 # base10: 153391689, binary: 1001001001001001001001001001, len: 28 |
62 | 62 | return n
|
63 | 63 |
|
64 | 64 |
|
65 | 65 | def __unpart1by1(n):
|
66 |
| - n &= 0x55555555 |
67 |
| - n = (n ^ (n >> 1)) & 0x33333333 |
68 |
| - n = (n ^ (n >> 2)) & 0x0f0f0f0f |
69 |
| - n = (n ^ (n >> 4)) & 0x00ff00ff |
70 |
| - n = (n ^ (n >> 8)) & 0x0000ffff |
| 66 | + n &= 0x55555555 # base10: 1431655765, binary: 1010101010101010101010101010101, len: 31 |
| 67 | + n = (n ^ (n >> 1)) & 0x33333333 # base10: 858993459, binary: 110011001100110011001100110011, len: 30 |
| 68 | + n = (n ^ (n >> 2)) & 0x0f0f0f0f # base10: 252645135, binary: 1111000011110000111100001111, len: 28 |
| 69 | + n = (n ^ (n >> 4)) & 0x00ff00ff # base10: 16711935, binary: 111111110000000011111111, len: 24 |
| 70 | + n = (n ^ (n >> 8)) & 0x0000ffff # base10: 65535, binary: 1111111111111111, len: 16 |
71 | 71 | return n
|
72 | 72 |
|
73 | 73 |
|
74 | 74 | def __unpart1by2(n):
|
75 |
| - n &= 0x09249249 |
76 |
| - n = (n ^ (n >> 2)) & 0x030c30c3 |
77 |
| - n = (n ^ (n >> 4)) & 0x0300f00f |
78 |
| - n = (n ^ (n >> 8)) & 0xff0000ff |
79 |
| - n = (n ^ (n >> 16)) & 0x000003ff |
| 75 | + n &= 0x09249249 # base10: 153391689, binary: 1001001001001001001001001001, len: 28 |
| 76 | + n = (n ^ (n >> 2)) & 0x030c30c3 # base10: 51130563, binary: 11000011000011000011000011, len: 26 |
| 77 | + n = (n ^ (n >> 4)) & 0x0300f00f # base10: 50393103, binary: 11000000001111000000001111, len: 26 |
| 78 | + n = (n ^ (n >> 8)) & 0xff0000ff # base10: 4278190335, binary: 11111111000000000000000011111111, len: 32 |
| 79 | + n = (n ^ (n >> 16)) & 0x000003ff # base10: 1023, binary: 1111111111, len: 10 |
80 | 80 | return n
|
81 | 81 |
|
82 | 82 |
|
|
0 commit comments