Vous êtes sur la page 1sur 2

TP Base binaire/ décimale

Mission 1 : Programme la conversion en base 2, d’un nombre donné en base 10. Tu


afficheras successivement les restes des divisions euclidiennes.

def base10EnBase2(n):
while .........:
r =
q =
print(........ )
.... = ....

Le résultat n’a pas un affichage très agréable, nous allons voir comment l’améliorer dans la
mission suivante.

Mission 2 : Modifie ton programme pour améliorer l’affichage du nombre en binaire. On


s’aidera d’une liste pour stocker de façon ordonnée les restes successifs.

1ère étape : 2ème étape : On renverse la liste et on


Plutôt que d’afficher, on place les restes affiche :
successifs dans une liste en les ajoutant à - le premier élément
celle-ci. - le deuxième élément
- le troisième élément
- ...

Les listes en Programmation :


Pour créer une liste vide : maListe = [ ]

maListe.append(2) → ajoute l’élément 2 à la liste qui devient [2]


maListe.append(3) → ajoute l’élément 3 à la liste qui devient [2,3]
maListe.pop(1) → supprime l’élément de rang 1 de la liste
maListe[0] → renvoie le terme de la liste de rang 0, ici 2
maListe[1] → renvoie le terme de la liste de rang 1, ici 3
len(maListe) → retourne le nombre d’élément de la liste
maListe.reverse()→ Inverse les éléments de la liste: ici maListe devient [3,2]
Conversion de Binaire en Décimal

Python ne permet pas de représenter (saisir) du binaire, nous allons donc utiliser du
texte, composé uniquement de “0” et de “1” pour simuler une nombre binaire (notez les
guillemets ci-dessous):
b = “10010”
Pour accéder à un caractère, il suffit d’utiliser l’opérateur crochet “[ ]”:
b = “10010”
print(b[0]) -> Affichera “1”
print(b[1]) -> Affichera “0”
print(b[len(b)-1]) -> Affichera “0”

Mission3 : nous voulons traduire le nombre binaire suivant en décimal :


“10010”

1) Écrivez la décomposition en base 2 et sa représentation en base 10 :


(10010)2 = 1x2… + 0x2… + 0x2… + 1x2… + 0x2… = (...........)10

2) Remplissez le tableau ci-dessous exprimant la puissance de 2 en fonction de la


position du caractère dans le texte binaire :
Position du caractère 0 1 2 3 4

Puissance de 2

3) Complétez l’algorithme ci-dessous permettant de calculer la valeur d’un texte


représentant un nombre binaire :
binaire ← “10010”
L ← la longueur de la chaîne ‘binaire‘
resultat ← 0
i←0
Tant que ……:
c = le caractère de la chaine ‘binaire’ à la position ‘i’
Si c est le caractère “1”:
resultat ← resultat + …... x 2...
Sinon si c est le caractère “0”:
…………...
i = i +1

4) Traduire en Python l’algorithme ci-dessus. Pour cela vous compléterez la fonction


suivante :
def texteBinaireEnDecimal(binaire):
L = ………
resultat = ………
i = ………
………………
………………
………………
return resultat

Vous aimerez peut-être aussi