Conversion booléen/binaire

On considère dans cet exercice une représentation binaire d’un entier non signé en tant que tableau de booléens.

Par exemple tab = [True, False, True, False, False, True, True] représente \(2^6 +2^4 + 2^1 + 2^0 = 83\).

Cette représentation consistant à placer en premier le booléen indiquant la puissance la plus élevée de 2 est dite big-endian ou grand-boutiste.

Écrire une fonction gb_vers_entier qui prend en paramètre un tel tableau et renvoie l’entier qu’il représente.

Exemple

🐍 Console Python
>>> gb_vers_entier([])
0
>>> gb_vers_entier([True])
1
>>> gb_vers_entier([True, False, True, False, False, True, True])
83
>>> gb_vers_entier([True, False, False, False, False, False, True, False])
130
Compléter ci-dessous

###
# Testsbksl-nlbksl-nlassert gbpy-undverspy-undentier([]) == 0bksl-nlassert gbpy-undverspy-undentier([True]) == 1bksl-nlassert gbpy-undverspy-undentier([True, False, True, False, False, True, True]) == 83bksl-nlassert gbpy-undverspy-undentier([True, False, False, False, False, False, True, False]) == 130bksl-nlbksl-nl# Autres testsbksl-nlbksl-nlassert gbpy-undverspy-undentier([True, False, True, False , True, False]) == 42bksl-nlbksl-nl 5/5
def gbpy-undverspy-undentier(tab):bksl-nl ...bksl-nlbksl-nl# Testsbksl-nlbksl-nlassert gbpy-undverspy-undentier([]) == 0bksl-nlassert gbpy-undverspy-undentier([True]) == 1bksl-nlassert gbpy-undverspy-undentier([True, False, True, False, False, True, True]) == 83bksl-nlassert gbpy-undverspy-undentier([True, False, False, False, False, False, True, False]) == 130bksl-nlbksl-nlbksl-nlbksl-nldef gbpy-undverspy-undentier(tab):bksl-nl somme = 0bksl-nl for i in range(len(tab)):bksl-nl if tab[i]:bksl-nl somme = somme + 2 py-strpy-str (len(tab) - 1 - i)bksl-nl return sommebksl-nlbksl-nl