Simuler la machine en Python
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 11 — La représentation des nombres
Énoncé
Simuler l'addition modulo en complément à deux à l'aide d'un script Python.
Corrigé
def vers_signe(mot: int, k: int) -> int:
assert 0 <= mot < 2 ** k
# Si le bit de signe est 1, on retranche 2**k
return mot if mot < 2 ** (k - 1) else mot - 2 ** k
def addition_machine(x: int, y: int, k: int) -> int:
# L'addition se fait modulo 2**k puis est interprétée avec signe
return vers_signe((x + y) % (2 ** k), k)
assert addition_machine(127, 1, 8) == -128
assert addition_machine(-1, 1, 8) == 0Les 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.