INNER CODE UNIT · Python

convert_bits

bee-san/pyWhat · pywhat/bitcoin.py:72

def convert_bits(
    data: Sequence[int], from_bits: int, to_bits: int
) -> Optional[List[int]]:
    """
    Regroup data, a sequence of from_bits-bit integers, into to_bits-bit
    integers. None if what is left over is not a zero padding of less than
    from_bits bits (BIP 173).
    """
    accumulator = 0
    bits = 0
    result = []
    max_value = (1 << to_bits) - 1
    max_accumulator = (1 << (from_bits + to_bits - 1)) - 1
    for value in data:
        accumulator = ((accumulator << from_bits) | value) & max_accumulator
        bits += from_bits
        while bits >= to_bits:
            bits -= to_bits

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…