Adloun

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.