(bitcoin-specific): convert an integer into a variable-length integer

def num_to_var_int(x):
    """
    (bitcoin-specific): convert an integer into a variable-length integer
    """
    x = int(x)
    if x < 253:
        return from_int_to_byte(x)

    elif x < 65536:
        return from_int_to_byte(253) + encode(x, 256, 2)[::-1]

    elif x < 4294967296:
        return from_int_to_byte(254) + encode(x, 256, 4)[::-1]

    else:
        return from_int_to_byte(255) + encode(x, 256, 8)[::-1]