Dérouler le calcul du développement binaire de
Exercice de TD · niveau 2 · NSI (première), chapitre 2 — Flottants, booléens et textes · Écriture binaire et pièges des flottants
Énoncé
Dérouler le calcul du développement binaire de . Retrouve-t-on la période de ? Expliquer sans refaire le calcul.
Corrigé
Le déroulé. : bit ; : bit ; : bit , reste ; : bit , reste — déjà vu. Donc
périodique de période 0011.
La même période, et l'on pouvait le prévoir. , et multiplier par en base deux revient à décaler la virgule d'un rang, exactement comme multiplier par en base dix. Les chiffres ne changent pas, ils glissent : le développement de était , celui de est le même amputé de son premier zéro. La période 0011 est donc nécessairement identique.
Contrôle : on retrouve les mêmes bits à la machine.
def developpement_binaire(x, n):
"""Les n premiers bits apres la virgule de x, 0 <= x < 1."""
assert 0.0 <= x < 1.0, "x doit appartenir a [0, 1["
bits = ""
for _ in range(n):
x = x * 2
if x >= 1:
bits, x = bits + "1", x - 1
else:
bits = bits + "0"
return bits
>>> developpement_binaire(0.1, 12)
'000110011001'
>>> developpement_binaire(0.2, 12)
'001100110011'
Le second est bien le premier décalé d'un rang.
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.