Exercices divers sur le codage binaire :
Exercice 1:
Tout nombre entier naturel décimal (base = 10) peut s’écrire comme
combinaison linéaire de puissance de 10. Par exemple:
123 = 1 x 10**2 + 2 x 10**1 + 3 x 10**0
En mathématiques, en général on écrit :
avec n>=0, p>= 1, d>= 0.
À l’aide de ces opérations, il est possible d’obtenir les chiffres d’un
entier naturel à l’aide de l’algorithme suivant.
123456
Choisir un entier naturel n.
Initialiser reste à n.
Tant que reste n'est pas nul, répéter les instructions suivantes.
Calculer reste% 10 et stocker le résultat.
Remplacer reste par reste// 10
Renvoyer les chiffres stockés
Les chiffres sont les entiers stockés. En Python, cet algorithme peut
être traduit par le code suivant.
# entier à décomposer
n = 123
# initialisation
reste = n
chiffres = []
# détermination des chiffres
while reste != 0:
chiffres.append(reste% 10)
reste = reste// 10
chiffres.reverse()
Proposez un code en Python, partant d’une liste de chiffres
représentée sous forme d’un tableau, permet de
reconstruire un entier.
Exemple : tab_chiffres = [2, 3, 4], vôtre code devrait reconstituer le
nombre 234 en base 10.
Exercice 2:
Convertir un entier du système binaire au système décimal et
réciproquement peut aisément se faire.
1111011(2) ⇔ 1 x 2**6 + 1 x 2**5 + 1 x 2**4 + 1 x 2**3 + 0 x 2**2 + 1 x
2**1 + 1 x 2**0 = 123.
En utilisant la méthode (algorithme) vue en cours
décimal —> binaire .
Complétez la fonction du code en Python dec_to_bin qui prend en
paramètre un nombre entier n et renvoie sa représentation
binaire.
def dec_to_bin(n):
chaine_bin = ''
nb = n
while ……………:
r = nb …….. 2
nb = nb ……2
chaine_bin = str(r) + ………………..
return chaine_bin
Exo 1
tab_chiffres=[2,3,4]
entier=0
for chiffre in tab_chiffre:
entier=entier*10+chiffre
print(entier)