def decode_dif_data_field(data_field):
    """
    Returns the data description and the number of bytes the data is made up of
    Will return false if data_length cannot be predetermined.
    :param data_field:
    :return data_description, data_length:
    """
    if data_field == 0:
        return 'No Data', 0
    elif data_field == 1:
        return '8 Bit Integer', 1
    elif data_field == 2:
        return '16 Bit Integer', 2
    elif data_field == 3:
        return '24 Bit Integer', 3
    elif data_field == 4:
        return '32 Bit Integer', 4
    elif data_field == 5:
        return '32 Bit Real', 4
    elif data_field == 6:
        return '48 Bit Integer', 6
    elif data_field == 7:
        return '64 Bit Integer', 7
    elif data_field == 8:
        return 'Selection for Readout', False
    elif data_field == 9:
        return '2 digit BCD', 1
    elif data_field == 10:
        return '4 digit BCD', 2
    elif data_field == 11:
        return '6 digit BCD', 3
    elif data_field == 12:
        return '8 digit BCD', 4
    elif data_field == 13:
        return 'Variable Length', False
    elif data_field == 14:
        return '12 digit BCD', 6
    elif data_field == 15:
        return 'Special Functions', 1
    else:
        raise ValueError(
            f'Data in data_field is not within specified range. 0-15 is allowed. Data used: {data_field}'
            )
