Des entiers sans limite
Exercice supplémentaire · niveau 3 (difficile) · sciences numériques et technologie (seconde), chapitre 2 — Variables, types et affectations · Les types de données
Énoncé
Calculer en Python, puis compter le nombre de chiffres du résultat avec len(str(...)). Comparer avec ce qui se passerait dans un langage où les entiers tiennent sur bits.
Corrigé
n = 2 ** 200
print(n)
print(len(str(n))) # 61 chiffres
Python calcule la valeur exacte : ses entiers n'ont pas de taille maximale, ils grandissent tant que la mémoire suit.
Dans un langage à entiers de bits (C, Java…), la plus grande valeur représentable est : le calcul déborderait et renverrait un résultat faux, souvent sans aucun message d'erreur. C'est un cas où l'on obtient un nombre, mais pas le bon — la pire espèce de bogue.
Les flottants, eux, restent limités : 2.0 ** 2000 renvoie inf.
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.