import doctest

## Exercice 1
# Question 1
def decode_bin(avant_virgule, apres_virgule):
    """
    Décodage d'écriture binaire à virgule, sans signe.
    
    Entrées
    -------
      Deux listes de zéros et de uns,
      représentant une écriture binaire à virgule.

    Sortie
    ------
      Le réel positif représenté.

    >>> decode_bin([1, 0, 1], [0, 1])
    5.25

    >>> decode_bin([], [0, 0, 1])
    0.125

    >>> decode_bin([1, 0, 1, 0, 1, 0], [])
    42
    """
    pass # Effacez et écrivez votre code ici

# Question 2
def encode_bin(x):
    """
    Encodage de réel positif en écriture binaire à virgule.
    
    Entrée
    ------
      Un nombre réel positif.

    Sortie
    ------
      Une paire de listes de zéros et de uns,
      représentant l'écriture binaire à virgule de l'entrée.

    >>> encode_bin(5.25)
    ([1, 0, 1], [0, 1])
    >>> encode_bin(0.125)
    ([0], [0, 0, 1])
    >>> encode_bin(42)
    ([1, 0, 1, 0, 1, 0], [])
    """
    pass # Effacez et écrivez votre code ici

# Question 3
def decalage(avant_virgule, apres_virgule):
    """
    Nombre de positions dont il faut décaler la virgule.
    
    Entrée
    ------
      Une écriture binaire à virgule.

    Sortie
    ------
      Le nombre de positions dont il faut décaler la virgule
      pour avoir un 1 et seulement un 1 à gauche de la virgule.

    >>> decalage([1, 0, 1], [0, 0, 1])
    2
    >>> decalage([], [0, 1])
    -2
    """
    pass # Effacez et écrivez votre code ici

## Exercice 2
# Question 1
def exposant_represente(avant_virgule, apres_virgule):
    pass #effacez et écrivez votre code ici

# Question 2
def fraction(avant_virgule, apres_virgule):
    pass #effacez et écrivez votre code ici

# Question 3
def encode_f8(x):
    pass # Effacez et écrivez votre code ici

# Question 4
# Au lieu de .....
# on aurait pu .....

# Question 5
def decode_f8(binaire):
    pass # Effacez et écrivez votre code ici

doctest.testmod()
