|
14 | 14 |
|
15 | 15 | index:int
|
16 | 16 | The offset into the bit position from right,
|
17 |
| - 0b010111 -> list [1,1,1,0,1,0]. big-endian -> little-endian |
| 17 | + 0b010111 -> list [1,1,1,0,1,0]. big-endian -> little-endian |
18 | 18 | For inserts, index is the position to the right of index,
|
19 |
| - index 0 -> right of rightmost bit. |
| 19 | + index 0 -> right of rightmost bit. |
20 | 20 | For gets, sets and removes, it is the position of the bit itself.
|
21 | 21 |
|
22 | 22 | value:int
|
23 |
| - Either [0,1] for single bit, or bit mask, bit_length(value) <= bitlen. |
| 23 | + Either [0,1] for single bit, or int value for multibit, |
| 24 | + bit_length(value) <= bitlen. |
24 | 25 |
|
25 | 26 | bitlen:int
|
26 | 27 | The effective mask length, spec. leading zeros
|
27 |
| - ( bitlen 4 value 1 -> 0001 ) |
| 28 | + ( bitlen 4 value 1 -> 0001 ) |
28 | 29 |
|
29 | 30 | The bitwise expressions may look convoluted, but basically, there are
|
30 | 31 | just three parts: left-hand side, value, right-hand side.
|
@@ -230,6 +231,7 @@ def multibit_remove(bint: int, index: int, bit_len: int) -> int:
|
230 | 231 |
|
231 | 232 |
|
232 | 233 | if __name__ == "__main__":
|
| 234 | + |
233 | 235 | import doctest
|
234 | 236 |
|
235 | 237 | doctest.testmod()
|
0 commit comments