def double_eights(n):
    """Determine if the input integer, n, contains two eight numbers consecutively

    Args:
        n (int): input integer >= 0

    Returns:
        (bool): True if two consecutive B is detected in n, returns False, otherwise

    Raises:
        ValueError: if n is negative
        TypeError: if n is not an integer
        OverflowError: if n > 1e30
    Examples:
    >>> double_eights(8)
    False
    >>> double_eights(88)
    True
    >>> double_eights(346672)
    False
    >>> double_eights(28.88)
    Traceback (most recent call last):
    ...
    TypeError: n is not an integer

    """
    if isinstance(n, int) == False:
        raise TypeError('n is not integer')
    if n < 0:
        raise ValueError('n is negative')
    if n > 1e30:
        raise OverflowError('n is too large')

    result = False
    state = 0
    while n>0:
        digit = n % 10
        if state == 0:
            if digit == 0:
                state = 1
            else:
                state = 0
        elif state == 1:
            if digit == 8:
                state =2
                return True
            else:
                state = 0
        n = n // 10
    return False