Calculer à la main la valeur décimale de et de
Exercice d'entraînement · niveau 1 (application) · NSI (première), chapitre 2 — Flottants, booléens et textes · Automatiser le développement binaire
Énoncé
Calculer à la main la valeur décimale de et de . Écrire ensuite vers_decimal(bits) qui le fait pour une chaîne de bits quelconque.
Corrigé
À la main. ; .
def vers_decimal(bits):
"""Valeur de 0,<bits> lu en base deux.
Precondition : bits ne contient que des '0' et des '1'.
Le bit de rang i (a partir de 0) pese 2**(-(i+1)).
"""
x = 0.0
for i, c in enumerate(bits):
if c == "1":
x = x + 2.0 ** (-(i + 1))
return x
>>> vers_decimal("1011"), vers_decimal("0011")
(0.6875, 0.1875)
Contrôle : ici l'égalité de flottants est légitime — tous ces nombres ont un développement binaire fini, donc sont exacts. Piège : numéroter les rangs à partir de et écrire 2.0 ** (-i), ce qui donne un résultat double du bon.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.