This commit is contained in:
Bill Breitmayer 2024-05-28 21:53:34 -04:00
commit a471d00d75

View File

@ -67,6 +67,7 @@ bit_length = int.bit_length
and for bit_length(value) > bit_len, which can cause silent errors.
Anything like int(None) is going to cause a loud error. """
def bit_get(bint: int, index: int):
"""Get value of bit at index in bint.
@ -84,6 +85,7 @@ def bit_get(bint: int, index: int):
return multibit_get(bint, index, 1)
def bit_set(bint: int, index: int, value: int = 1):
"""Set bit at index to value 1 or 0, like set() or unset().
@ -102,6 +104,7 @@ def bit_set(bint: int, index: int, value: int = 1):
return multibit_set(bint, index, 1, value)
def bit_insert(bint: int, index: int, value: int = 1):
"""Insert bit value before index.
@ -120,6 +123,7 @@ def bit_insert(bint: int, index: int, value: int = 1):
return multibit_insert(bint, index, 1, value)
def bit_remove(bint: int, index: int) -> int:
"""Remove the bit at index from bint.
@ -135,6 +139,7 @@ def bit_remove(bint: int, index: int) -> int:
return multibit_remove(bint, index, 1)
def multibit_get(bint: int, index: int, bit_len: int) -> int:
"""Get bit_len number of bits starting from index.
819 = 1100110011.
@ -154,6 +159,7 @@ def multibit_get(bint: int, index: int, bit_len: int) -> int:
return (bint >> index) & ((1 << bit_len) - 1)
def multibit_set(bint: int, index: int, bit_len: int, value: int) -> int:
"""Overlay bint at index with value for bit_len bits.
@ -224,7 +230,6 @@ def multibit_remove(bint: int, index: int, bit_len: int) -> int:
if __name__ == "__main__":
import doctest
doctest.testmod()