NSI (première) · Chapitre 2 · Exercice de TD
Dérouler le calcul du développement binaire de
Flottants, booléens et textes · Écriture binaire et pièges des flottants · niveau 2
É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.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.