进制转换

1. 字符串转换


2. 数组表示的任意进制

def convert_base(number: int, base: int = 10) -> list[int]:
    if number < 0 or base < 2:
        raise ValueError(
            '"number" must be positive and "base" must be greater than 1'
        )
    if number == 0 or base == 10:
        return [number]
    res = []
    while number != 0:
        number, mod = divmod(number, base)
        res.append(mod)
    res.reverse()
    return res

def from_list(l: list[int], base: int = 10) -> int:
    if base < 2:
        raise ValueError('"base" must be greater than 1')
    res = 0
    for x in l:
        res = res * base + x
    return res