<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Représentation des réels</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Représentation des nombres réels en machine, virgule fixe et<br/>
virgule flottante, norme IEEE 754, précision et erreurs<br/>
d'arrondi, conséquences pratiques sur les calculs.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q01 : Type des réels en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le type Python utilisé pour représenter les<br/>
nombres à virgule ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les nombres flottants sont <strong>approchés</strong>. Pour des<br/>
calculs en précision arbitraire, Python propose le<br/>
module <code>decimal</code> (calculs en base $10$ exacts) ou<br/>
<code>fractions</code> (rationnels exacts).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>number</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>number</code> n'est pas un type Python standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>float</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>float</code> (« nombre à virgule<br/>
flottante ») est le type Python pour les nombres<br/>
réels approchés. Par défaut, ils sont codés sur $64$<br/>
bits selon la norme IEEE $754$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>int</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> est le type des entiers en Python.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>real</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>real</code> n'existe pas en Python (mais existe<br/>
dans certains autres langages comme Pascal).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q02 : Notation scientifique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>L'écriture <strong>scientifique</strong> d'un nombre réel sépare un<br/>
réel en :</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En base $2$ (binaire), la notation scientifique s'écrit<br/>
$m \times 2^e$, avec une mantisse $m$ entre $1$ et $2$<br/>
et un exposant $e$ entier. C'est exactement ce que fait<br/>
la norme IEEE $754$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une fraction irréductible</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une fraction irréductible<br/>
(comme $\dfrac{3}{7}$) est<br/>
une autre façon d'écrire<br/>
un rationnel, mais ce n'est<br/>
pas la notation scientifique<br/>
en base deux utilisée par<br/>
les flottants.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une partie entière et une partie décimale</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt l'écriture habituelle en base<br/>
$10$. La notation scientifique factorise en mantisse<br/>
et exposant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un signe et une valeur absolue</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une décomposition différente, qui<br/>
n'est pas spécifiquement scientifique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une mantisse (entre $1$ et $10$) et un exposant entier de $10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : par exemple, $345{,}67 = 3{,}4567 \times 10^2$.<br/>
La mantisse est $3{,}4567$, l'exposant est $2$.<br/>
C'est l'idée de base de la représentation à virgule<br/>
flottante (en base $2$ pour les ordinateurs).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q03 : Norme IEEE 754</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que définit la norme <strong>IEEE $754$</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avant IEEE $754$, chaque constructeur avait son propre<br/>
format flottant, un même calcul pouvait donner des<br/>
résultats différents selon la machine. La norme a<br/>
uniformisé tout cela.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La représentation binaire des nombres à virgule flottante (signe, exposant, mantisse)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la norme IEEE $754$ ($1985$, révisée<br/>
en $2008$ et $2019$) standardise les formats de<br/>
flottants : simple précision (<code>float</code>, $32$ bits),<br/>
double précision (<code>double</code>, $64$ bits) et plus.<br/>
Pratiquement tous les processeurs respectent cette<br/>
norme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La connectique des câbles réseau</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport. Les normes IEEE de connectique<br/>
sont différentes (par exemple IEEE $802.3$ pour<br/>
Ethernet).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le format des adresses IP</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt la RFC $791$ (et autres) qui<br/>
définit les adresses IP. IEEE $754$ concerne les<br/>
réels.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le format des fichiers PDF</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le format PDF est défini<br/>
par la spécification ISO<br/>
$32000$. Il n'a aucun lien<br/>
avec la norme IEEE $754$,<br/>
qui concerne uniquement<br/>
les nombres flottants.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q04 : Approximation des réels</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi les réels stockés en machine sont-ils en général<br/>
des <strong>approximations</strong> plutôt que des valeurs exactes ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>C'est une limite <strong>fondamentale</strong> : aucun ordinateur,<br/>
quelle que soit sa puissance, ne peut représenter<br/>
exactement tous les réels. Il faut donc choisir un<br/>
compromis sur la précision et l'étendue.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce qu'il y a une infinité de nombres réels mais une mémoire finie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on ne peut représenter qu'un nombre<br/>
fini de valeurs en mémoire finie. La plupart des<br/>
réels (par exemple $\pi$, $\sqrt{2}$) doivent être<br/>
approchés. Même certains nombres « simples » comme<br/>
$0{,}1$ n'ont pas de représentation binaire finie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les ordinateurs sont mal conçus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas un défaut de conception, c'est<br/>
une nécessité mathématique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il faut moins de mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est pour des raisons mathématiques<br/>
fondamentales, pas seulement d'optimisation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les flottants sont plus rapides que les entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les flottants sont en réalité plus lents<br/>
que les entiers sur la plupart des processeurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q05 : Calcul flottant en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie l'expression Python <code>0.1 + 0.2</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>$0{,}1$ en binaire vaut<br/>
$0{,}0001100110011\ldots$ (motif périodique infini).<br/>
L'arrondi à un nombre fini de bits crée une petite<br/>
erreur, qui se propage dans les calculs.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune erreur, le calcul est valide. Mais<br/>
son résultat n'est pas exactement $0{,}3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Exactement $0{,}3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}1$ et $0{,}2$ n'ont pas de<br/>
représentation binaire <strong>finie</strong> (comme $1/3$ en<br/>
base $10$). Leur somme contient donc une erreur<br/>
d'arrondi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}29999\ldots$ (sans aucune erreur)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur exacte stockée est légèrement<br/>
<strong>supérieure</strong> à $0{,}3$, pas inférieure.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une valeur très proche de $0{,}3$, mais avec une petite erreur d'arrondi (par exemple $0{,}30000000000000004$)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est l'exemple emblématique des<br/>
pièges du calcul flottant. Pour comparer des<br/>
flottants, on utilise typiquement<br/>
<code>abs(a - b) &lt; epsilon</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q06 : Comparer deux flottants</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour tester si deux flottants <code>a</code> et <code>b</code> sont « égaux »<br/>
en Python, la bonne pratique est :</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette précaution est essentielle dans tous les calculs<br/>
scientifiques. Les comparaisons strictes de flottants<br/>
sont une source classique de bugs subtils.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>a == b</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : à cause des erreurs d'arrondi, deux<br/>
flottants qui devraient être égaux peuvent<br/>
légèrement différer. <code>==</code> est trop strict.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>int(a) == int(b)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on perd la partie décimale. Et de plus, le<br/>
test est trop large (deux flottants très différents<br/>
peuvent donner le même entier après troncature).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>abs(a - b) &lt; epsilon</code> avec <code>epsilon</code> petit (par exemple $10^{-9}$)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on compare à une <strong>tolérance</strong><br/>
arbitraire. Le choix d'<code>epsilon</code> dépend du contexte.<br/>
Python propose aussi <code>math.isclose(a, b)</code> avec des<br/>
tolérances par défaut sensées.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>a is b</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>is</code> teste l'identité (même objet en<br/>
mémoire), pas l'égalité numérique. Ne fonctionnera<br/>
presque jamais avec des flottants.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q07 : Virgule fixe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre une représentation à<br/>
<strong>virgule fixe</strong> et une représentation à <strong>virgule<br/>
flottante</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cas typique de virgule fixe : la finance, où on<br/>
manipule des montants à deux décimales, et on veut<br/>
éviter les erreurs d'arrondi sur l'argent. On stocke<br/>
alors les montants en centimes (entiers).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La virgule fixe a un nombre de chiffres fractionnaires constant ; la virgule flottante a une précision relative</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec virgule fixe, par exemple<br/>
deux décimales, on peut représenter $0{,}01$ à<br/>
$9999{,}99$. Avec virgule flottante, l'exposant<br/>
permet d'aller de très petit ($10^{-300}$) à très<br/>
grand ($10^{300}$), au prix d'une précision relative.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La virgule fixe n'existe que sur les vieux ordinateurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule fixe est encore utilisée<br/>
aujourd'hui (par exemple en finance pour des<br/>
montants en centimes).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune différence en pratique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les différences sont importantes,<br/>
notamment pour des applications spécifiques.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La virgule fixe est plus précise pour les très grands nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt la virgule flottante qui gère<br/>
mieux les très grands ou très petits nombres<br/>
(grâce à l'exposant variable).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q08 : Taille d'un float Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, sur combien de bits est stocké un <code>float</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour des besoins de précision supérieure, Python<br/>
propose le module <code>decimal</code> (précision arbitraire en<br/>
base $10$) et <code>fractions</code> (rationnels exacts).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$128$ bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la quadruple précision ($128$ bits) existe<br/>
mais n'est pas le standard de Python.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$64$ bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Python utilise par défaut la double<br/>
précision IEEE $754$, soit $64$ bits ($1$ pour le<br/>
signe, $11$ pour l'exposant, $52$ pour la mantisse).<br/>
Cela donne environ $15$ à $17$ chiffres décimaux<br/>
significatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$8$ bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trop peu pour représenter une plage utile<br/>
de réels.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$32$ bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la <strong>simple précision</strong> (le type<br/>
<code>float</code> du langage C). Python utilise par défaut la<br/>
double précision.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q09 : Valeurs spéciales IEEE 754</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La norme IEEE $754$ définit quelques valeurs spéciales<br/>
en plus des nombres réguliers. Lesquelles ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En Python : <code>float('inf')</code>, <code>float('-inf')</code>,<br/>
<code>float('nan')</code>. Le test <code>nan == nan</code> renvoie <code>False</code><br/>
(selon la norme), ce qui peut surprendre.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune valeur spéciale</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les valeurs spéciales sont une partie<br/>
essentielle de la norme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$+\infty$, $-\infty$, et NaN (« Not a Number »)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ces valeurs gèrent les opérations<br/>
extrêmes. $1/0$ donne $+\infty$, $\sqrt{-1}$ ou<br/>
$0/0$ donnent NaN. Cela évite les plantages et<br/>
permet des calculs plus robustes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\pi$, $e$, $\sqrt{2}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces nombres sont représentés comme tout<br/>
autre flottant, par approximation. Ils n'ont pas de<br/>
valeur spéciale dédiée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Vrai et Faux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont des valeurs <strong>booléennes</strong>, pas<br/>
flottantes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q10 : Composantes d'un flottant IEEE 754</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quels sont les <strong>trois champs</strong> qui composent la<br/>
représentation IEEE $754$ d'un nombre flottant ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un flottant $64$ bits (double précision) :<br/>
$1$ bit de signe + $11$ bits d'exposant +<br/>
$52$ bits de mantisse = $64$ bits.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Partie entière, partie décimale, partie complexe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait une décomposition mathématique,<br/>
pas la représentation IEEE $754$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Numérateur, dénominateur, exposant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec une fraction. La<br/>
mantisse n'est pas un dénominateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Octets supérieurs, médians, inférieurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une découpe physique, pas la<br/>
décomposition logique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Bit de signe, exposant biaisé, mantisse (fraction)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le bit de signe ($0$ pour positif,<br/>
$1$ pour négatif), l'exposant codé avec un biais<br/>
(pour permettre des exposants négatifs sans bit de<br/>
signe séparé), et la mantisse normalisée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q11 : Erreur d'arrondi cumulative</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que peut-il se passer si on additionne plusieurs millions<br/>
de petits flottants entre eux ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un exemple frappant : <code>sum([0.1] * 10)</code> en Python ne<br/>
donne pas exactement $1{,}0$, à cause des erreurs<br/>
cumulées. Pour des calculs financiers, on utilise<br/>
<code>decimal</code> ; pour des sommes scientifiques, des<br/>
algorithmes spécialisés.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le résultat est exact, comme une somme d'entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque addition introduit une petite erreur<br/>
d'arrondi. Sur des millions d'opérations, ces<br/>
erreurs s'accumulent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le calcul devient infiniment lent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la vitesse n'est pas l'enjeu. C'est la<br/>
précision qui se dégrade.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python lève une erreur de précision</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune erreur n'est levée. Les calculs<br/>
flottants sont silencieusement approximatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Les erreurs d'arrondi peuvent s'accumuler et donner un résultat sensiblement différent du résultat mathématique exact</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est un piège classique en calcul<br/>
scientifique. Pour minimiser les erreurs, on peut<br/>
additionner par ordre croissant (somme de Kahan)<br/>
ou utiliser une précision étendue.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q12 : Dépassement</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie en Python l'opération <code>1e308 * 10</code> (où<br/>
<code>1e308</code> désigne $10^{308}$) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le fait que les calculs flottants ne plantent pas, mais<br/>
donnent des valeurs spéciales (<code>inf</code>, <code>nan</code>), permet de<br/>
poursuivre les calculs sans interruption. Mais<br/>
attention à ne pas oublier de vérifier ces valeurs si<br/>
elles peuvent affecter le résultat.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$10^{309}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $10^{309}$ dépasse la plage des doubles<br/>
précision (limite vers $1{,}8 \times 10^{308}$).<br/>
Le résultat est donc une valeur spéciale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>inf</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on dépasse le maximum représentable<br/>
en double précision. La norme IEEE $754$ traduit<br/>
cela par <code>+inf</code> (infini positif). C'est un<br/>
dépassement (<em>overflow</em>) flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur de Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune erreur, c'est un comportement<br/>
défini par la norme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait un <em>underflow</em> (sous-dépassement<br/>
vers zéro), pas un dépassement par le haut.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q13 : Précision en double précision</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de chiffres décimaux significatifs un flottant<br/>
en <strong>double précision</strong> ($64$ bits) peut-il représenter<br/>
de manière fiable ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour des besoins supérieurs (cosmologie, cryptographie,<br/>
mathématiques précises), on utilise des bibliothèques<br/>
de précision arbitraire (mpfr, decimal, etc.) qui<br/>
acceptent un coût de performance.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une infinité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune représentation finie ne peut donner<br/>
une infinité de chiffres exacts.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Environ $50$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : très excessif. La double précision ne<br/>
dépasse pas $17$ chiffres décimaux fiables.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Environ $15$ à $17$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec $52$ bits de mantisse, on a<br/>
$\log_{10}(2^{52}) \approx 15{,}65$ chiffres<br/>
significatifs. Au-delà, on n'a plus aucune garantie<br/>
de précision.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Environ $7$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la précision de la <strong>simple</strong> précision<br/>
($32$ bits, mantisse $23$ bits). En double précision,<br/>
on a plus.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q14 : math.isclose</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, la fonction <code>math.isclose(a, b)</code> :</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette fonction (introduite en Python $3{,}5$) est la<br/>
bonne pratique recommandée pour comparer des flottants.<br/>
Elle est plus robuste que <code>abs(a - b) &lt; epsilon</code> car<br/>
elle prend en compte l'<strong>ordre de grandeur</strong> des<br/>
nombres comparés.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Convertit <code>a</code> et <code>b</code> en chaînes de caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion en chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Compare deux flottants en tolérant une petite différence relative et/ou absolue</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>math.isclose(a, b)</code> utilise par<br/>
défaut une tolérance relative de $10^{-9}$ et une<br/>
tolérance absolue de $0$. On peut les ajuster avec<br/>
<code>rel_tol</code> et <code>abs_tol</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Renvoie toujours <code>True</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : elle teste vraiment l'égalité approximative.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lève une erreur si les nombres ne sont pas exactement égaux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt une fonction tolérante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q15 : Calcul financier</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour un calcul financier (additionner des centimes),<br/>
quel choix est le plus prudent en Python ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les régulations financières interdisent souvent<br/>
l'usage de <code>float</code> pour des montants. La précision<br/>
doit être garantie au centième. Les bibliothèques<br/>
financières sérieuses utilisent toujours <code>decimal</code> ou<br/>
l'équivalent.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Utiliser des <code>float</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les flottants accumulent des erreurs<br/>
d'arrondi qui peuvent fausser des montants en<br/>
centimes. Mauvaise pratique financière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Utiliser des nombres complexes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec les nombres complexes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Utiliser le module <code>decimal</code> ou des entiers représentant des centimes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le module <code>decimal</code> calcule en<br/>
base $10$ exactement (pas d'erreur d'arrondi pour<br/>
$0{,}1$). Alternative : stocker les montants en<br/>
centimes (entiers), sans virgule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Utiliser des chaînes de caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on ne peut pas faire d'arithmétique<br/>
directement sur des chaînes en Python.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q16 : Conversion entier vers flottant</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, l'instruction <code>float(7)</code> renvoie :</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Inversement, <code>int(7.9)</code> renvoie $7$ (troncature, pas<br/>
arrondi). Pour arrondir, on utilise <code>round(7.9)</code> qui<br/>
renvoie $8$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7</code> (entier inchangé)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction <code>float</code> change le type. Le<br/>
résultat est <code>7.0</code>, qui est un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>7.0</code> (flottant)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la conversion d'un entier en<br/>
flottant ajoute « .0 ». Le type passe de <code>int</code> à<br/>
<code>float</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune erreur, c'est une conversion<br/>
standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'7'</code> (chaîne de caractères)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>float()</code> convertit en flottant, pas en<br/>
chaîne. Pour une chaîne, on utiliserait <code>str(7)</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q17 : Perte de signification</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi <code>(1e16 + 1) - 1e16</code> donne-t-il $0$ en Python<br/>
au lieu de $1$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour éviter ce piège : reformuler les calculs pour<br/>
éviter de soustraire des nombres très proches, ou<br/>
passer en précision étendue. C'est un problème<br/>
classique du calcul numérique scientifique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce que $1$ est négligeable face à $10^{16}$, la mantisse ne peut pas représenter cette différence avec sa précision limitée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la double précision a environ $16$<br/>
chiffres significatifs. Quand on ajoute $1$ à<br/>
$10^{16}$, le $1$ est « écrasé » par les erreurs<br/>
d'arrondi. C'est la <strong>perte de signification</strong><br/>
(<em>loss of significance</em>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que Python ne sait pas additionner</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python sait additionner. La limitation<br/>
vient du format de représentation des flottants.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les nombres trop grands sont arrondis à zéro</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas l'arrondi à zéro, c'est plus<br/>
subtil : c'est la précision relative limitée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>C'est un bug de Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas un bug, c'est un comportement<br/>
attendu et défini par IEEE $754$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q18 : Forme normalisée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En IEEE $754$, un flottant <strong>normalisé</strong> s'écrit dans la<br/>
forme :</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette astuce du « bit implicite » offre un bit gratuit<br/>
dans la mantisse. Pour les très petits nombres (proches<br/>
de zéro), on a aussi des nombres <strong>dénormalisés</strong> où<br/>
cette convention ne s'applique pas, permettant une<br/>
précision graduelle vers zéro.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}m \times 2^e$ avec $m$ quelconque</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la forme normalisée a une mantisse<br/>
comprise entre $1$ et $2$, pas entre $0$ et $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1{,}m \times 2^e$ avec un bit implicite à $1$ devant la mantisse</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la mantisse est toujours au format<br/>
$1{,}\text{xxx}$ en binaire (puisque le premier bit<br/>
d'un nombre non nul vaut $1$). On stocke seulement<br/>
la partie après la virgule, gagnant ainsi un bit<br/>
de précision « gratuit ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$m \times 10^e$ avec $m$ et $e$ entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la base est $2$, pas $10$. Et la mantisse<br/>
n'est pas toujours entière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$m + e$ (somme)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la mantisse et l'exposant ne s'additionnent<br/>
pas, ils se combinent par produit ($m \times 2^e$).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q19 : Non-associativité de l'addition flottante</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En arithmétique flottante, l'addition est-elle toujours<br/>
<strong>associative</strong> (c'est-à-dire $(a + b) + c = a + (b + c)$) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette non-associativité a des implications concrètes :<br/>
en parallélisme, des sommes massives peuvent donner<br/>
des résultats légèrement différents selon l'ordre de<br/>
réduction. En science du calcul, on cherche des<br/>
algorithmes qui minimisent cette dépendance.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Cela dépend du système d'exploitation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de lien avec le système.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Cela dépend du langage de programmation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une propriété de la norme IEEE $754$,<br/>
indépendante du langage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Non, l'ordre des additions peut changer le résultat à cause des arrondis</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : par exemple,<br/>
<code>(1e16 + 1) - 1e16 = 0</code> mais <code>(1e16 - 1e16) + 1 = 1</code>.<br/>
Ce détail est crucial en programmation parallèle :<br/>
additionner dans un ordre différent peut donner un<br/>
résultat différent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, comme pour les entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une croyance répandue mais fausse !<br/>
À cause des arrondis, l'ordre des additions peut<br/>
changer le résultat.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q20 : Décimal vs binaire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi $0{,}5$ a une représentation binaire <strong>exacte</strong>,<br/>
mais pas $0{,}1$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>C'est l'analogue de $1/3 = 0{,}333\ldots$ en base $10$.<br/>
Toute base privilégie certaines fractions et en<br/>
désavantage d'autres. Le calcul en base $10$ (<code>decimal</code>)<br/>
résout ce problème pour les nombres décimaux humains.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que $0{,}5$ est plus grand que $0{,}1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune raison liée à la taille relative.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que $0{,}5$ est utilisé plus souvent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fréquence d'usage n'a rien à voir avec<br/>
la représentabilité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que $0{,}5$ a un seul chiffre, $0{,}1$ aussi</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est en base $10$. En binaire, la<br/>
longueur des deux écritures est très différente.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce que $0{,}5 = 1/2 = 2^{-1}$ est une puissance de $2$, alors que $0{,}1 = 1/10$ ne l'est pas et donne un développement périodique en binaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en base $2$, seules les fractions<br/>
dont le dénominateur est une puissance de $2$<br/>
(ou des sommes de telles fractions) ont une<br/>
représentation <strong>finie</strong>. Pour $1/10$, on obtient<br/>
$0{,}0001100110011\ldots_2$, périodique infini.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q21 : Exposant biaisé</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi l'exposant en IEEE $754$ est-il stocké avec un<br/>
<strong>biais</strong> (par exemple, $+1023$ pour la double précision) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le biais $1023$ pour la double précision est choisi<br/>
pour avoir des exposants codés de $0$ à $2046$<br/>
(l'exposant réel va de $-1022$ à $+1023$). Les<br/>
valeurs $0$ et $2047$ sont réservées aux dénormalisés<br/>
et aux infinis/NaN.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Pour simplifier la comparaison entre deux flottants en utilisant la comparaison entière standard</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec un biais, l'exposant est<br/>
stocké comme un entier non signé. Cela permet de<br/>
comparer deux flottants positifs comme s'ils<br/>
étaient des entiers, ce qui simplifie le matériel<br/>
de comparaison.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour respecter une convention historique sans intérêt technique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il y a une raison technique précise : la<br/>
comparaison rapide.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les processeurs ne savent pas gérer les nombres négatifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les processeurs gèrent très bien les<br/>
nombres signés. Le biais est un choix de design<br/>
pour optimiser les comparaisons.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour économiser de la mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le biais ne change pas la quantité de<br/>
mémoire utilisée (toujours $11$ bits pour<br/>
l'exposant en double précision).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q22 : Nombres dénormalisés</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quand utilise-t-on des nombres <strong>dénormalisés</strong> en<br/>
IEEE $754$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les dénormalisés peuvent ralentir les processeurs<br/>
(parfois beaucoup), au point que certaines applications<br/>
les désactivent (option « flush to zero »). C'est un<br/>
compromis subtil entre précision et performance.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour les très grands nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse. Les très grands nombres<br/>
utilisent l'exposant maximal, pas le minimal.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour les valeurs spéciales comme NaN</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : NaN et infinis utilisent une combinaison<br/>
d'exposant maximal et de mantisse particulière, pas<br/>
les dénormalisés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour les calculs en simple précision</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les dénormalisés existent dans toutes les<br/>
précisions IEEE $754$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Pour les nombres très proches de zéro, plus petits que le plus petit nombre normalisé représentable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les dénormalisés permettent une<br/>
transition graduelle vers zéro (au lieu d'un saut<br/>
brutal). Cela améliore la précision pour les<br/>
calculs sur de très petites valeurs, au prix d'une<br/>
précision dégradée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q23 : Propagation des erreurs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel calcul est <strong>numériquement instable</strong> parmi les<br/>
suivants ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Exemple classique : la formule du discriminant pour<br/>
les racines de l'équation du second degré donne des<br/>
résultats catastrophiques quand le discriminant est<br/>
petit. On utilise alors une forme reformulée<br/>
mathématiquement équivalente mais numériquement<br/>
stable.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$a - b$ quand $a$ et $b$ sont très proches (annulation catastrophique)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : si $a$ et $b$ sont très proches,<br/>
leur différence a beaucoup moins de chiffres<br/>
significatifs que $a$ ou $b$. Les erreurs d'arrondi<br/>
deviennent dominantes par rapport au résultat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$a + b$ pour $a$ et $b$ de même signe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'addition de mêmes signes ne pose pas<br/>
de problème de soustraction catastrophique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$a \times b$ pour $a$ et $b$ proches de $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la multiplication n'a pas ce type<br/>
d'instabilité, sauf cas extrêmes (overflow).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$a / b$ quand $b$ est grand</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait plutôt un problème quand $b$<br/>
est très petit (proche de $0$).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q24 : decimal vs float</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, quelle est la principale différence entre les<br/>
modules <code>decimal</code> et le type <code>float</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette dualité reflète un compromis universel : <code>float</code><br/>
offre la rapidité (calcul en hardware), <code>decimal</code><br/>
offre la précision exacte (calcul logiciel). Le bon<br/>
choix dépend du contexte applicatif.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>decimal</code> calcule en base $10$ avec une précision configurable, donc sans erreur d'arrondi pour les nombres décimaux humains</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>Decimal('0.1') + Decimal('0.2')</code><br/>
donne exactement <code>Decimal('0.3')</code>. C'est essentiel<br/>
pour la finance, mais le coût en performance est<br/>
significatif (typiquement $10$ à $100$ fois plus<br/>
lent).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>decimal</code> utilise moins de mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt l'inverse. La précision<br/>
configurable consomme plus de mémoire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>decimal</code> est plus rapide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>decimal</code> est en réalité <strong>plus lent</strong> que<br/>
<code>float</code>. Le bénéfice est ailleurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>decimal</code> ne fonctionne qu'avec des entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>decimal</code> est précisément destiné aux<br/>
nombres décimaux non entiers.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q25 : Synthèse sur les flottants</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les énoncés suivants, lequel est <strong>vrai</strong> sur les<br/>
nombres flottants en machine ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Connaître les flottants permet d'éviter des bugs<br/>
subtils mais critiques dans les calculs scientifiques,<br/>
financiers, et même dans des programmes ordinaires<br/>
qui manipulent des nombres réels.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La précision des flottants augmente avec la taille du nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la précision <strong>relative</strong> est constante,<br/>
mais l'erreur <strong>absolue</strong> augmente avec la taille<br/>
du nombre. Plus un nombre est grand, plus l'écart<br/>
entre deux flottants consécutifs est grand.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les calculs flottants sont aussi précis que les calculs sur papier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a vu de nombreux contre-exemples<br/>
(associativité, perte de signification, etc.). Les<br/>
calculs flottants sont approchés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le test d'égalité <code>==</code> entre flottants est souvent piégeur, et il vaut mieux comparer avec une tolérance</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est l'enseignement le plus<br/>
pratique de tout ce chapitre. À cause des erreurs<br/>
d'arrondi, deux flottants qui devraient être égaux<br/>
peuvent légèrement différer. Toujours préférer<br/>
<code>math.isclose</code> ou une comparaison à epsilon.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les flottants peuvent représenter exactement tous les nombres rationnels</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la plupart des rationnels (par exemple<br/>
$1/3$, $1/10$) n'ont pas de représentation finie<br/>
en binaire. Seul un sous-ensemble fini est<br/>
exactement représenté.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q26 : Conversion décimal vers binaire avec virgule</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est l'écriture binaire de $6{,}625$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode pour la partie fractionnaire : on multiplie par $2$<br/>
et on note la partie entière du résultat (bit $0$ ou $1$),<br/>
puis on continue avec la partie fractionnaire restante,<br/>
jusqu'à obtenir $0$ ou repérer un cycle. Pour $0{,}625$, on<br/>
obtient $0{,}101_2$ exactement, car $0{,}625 = 0{,}5 + 0{,}125<br/>
= 2^{-1} + 2^{-3}$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1010{,}11$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $1010_2 = 10$, pas $6$. Confusion sur la partie<br/>
entière : $6 = 4 + 2 = 110_2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$110{,}625$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a juxtaposé l'écriture décimale de la partie<br/>
fractionnaire à la partie entière en binaire. La partie<br/>
décimale doit elle aussi être convertie en base $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$110{,}11$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la partie décimale $0{,}625$ ne se code pas sur<br/>
deux bits. On a $0{,}11_2 = 0{,}5 + 0{,}25 = 0{,}75$, ce<br/>
qui ne correspond pas à $0{,}625$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$110{,}101$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la partie entière donne $6 = 110_2$. La<br/>
partie fractionnaire se calcule par multiplications<br/>
successives par $2$ : $0{,}625 \times 2 = 1{,}25$ (bit<br/>
$1$), puis $0{,}25 \times 2 = 0{,}5$ (bit $0$), puis<br/>
$0{,}5 \times 2 = 1{,}0$ (bit $1$). On obtient<br/>
$0{,}101_2$, d'où $110{,}101_2$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q27 : Décimal sans écriture binaire finie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les réels suivants (écrits en base $10$), lequel n'a<br/>
<strong>pas</strong> une écriture finie en base $2$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un nombre décimal $\dfrac{p}{q}$ irréductible a une<br/>
écriture binaire finie si et seulement si $q$ est une<br/>
puissance de $2$. Pour $0{,}1 = \dfrac{1}{10}$,<br/>
$q = 10 = 2 \times 5$ contient un facteur $5$, ce qui<br/>
provoque le caractère infini en base $2$. Cette<br/>
observation explique pourquoi tant de calculs simples en<br/>
apparence ($0{,}1 + 0{,}2$) deviennent imprécis sur<br/>
machine.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$0{,}1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $0{,}1$ ne s'exprime pas comme une somme<br/>
finie de puissances négatives de $2$. Son écriture<br/>
binaire est périodique :<br/>
$0{,}0001100110011\ldots_2$. C'est précisément la cause<br/>
de l'écart entre <code>0.1 + 0.2</code> et <code>0.3</code> en flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}75$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}75 = 0{,}5 + 0{,}25 = 2^{-1} + 2^{-2}$,<br/>
donc son écriture binaire est $0{,}11_2$, finie sur<br/>
deux bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}25$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}25 = 2^{-2}$, donc son écriture binaire est<br/>
$0{,}01_2$, finie sur deux bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}5 = 2^{-1}$, donc son écriture binaire est<br/>
$0{,}1_2$, finie sur un seul bit fractionnaire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q28 : Exposant biaisé en simple précision</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le réel $5{,}5$ s'écrit en notation scientifique binaire<br/>
$5{,}5 = 1{,}011_2 \times 2^{2}$. Quel est son exposant<br/>
<strong>biaisé</strong> sur huit bits, tel qu'il sera stocké en simple<br/>
précision (norme IEEE $754$) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le biais ($127$ en simple précision, $1023$ en double<br/>
précision) sert à coder à la fois les exposants positifs et<br/>
négatifs sur un champ non signé. La formule de décodage est<br/>
symétrique : valeur lue $E$ → exposant réel<br/>
$e = E - \text{biais}$. Pour la simple précision, les<br/>
exposants stockés vont de $0$ à $255$, ce qui donne des<br/>
exposants réels de $-127$ à $128$ (avec les valeurs<br/>
extrêmes réservées pour les cas particuliers).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2$ est l'exposant <strong>réel</strong> ($e$), pas l'exposant<br/>
stocké. La norme IEEE $754$ stocke $e + 127$ pour la<br/>
simple précision afin de représenter tous les exposants<br/>
(positifs et négatifs) sur des bits non signés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$125$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a soustrait le biais ($2 - 127 = -125$,<br/>
changement de signe) au lieu de l'ajouter. Pour<br/>
<strong>stocker</strong> l'exposant, on calcule $e + 127$, pas<br/>
$e - 127$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$130$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de calcul : $2 + 127 = 129$, pas $130$. Vérifier<br/>
la somme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$129$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en simple précision, le biais est de<br/>
$127$. L'exposant stocké est $e + 127 = 2 + 127 = 129$,<br/>
ce qui s'écrit $10000001_2$ sur huit bits.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation des réels — Q29 : Décoder un flottant simple précision</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On considère le mot $32$ bits suivant, stocké en simple<br/>
précision (norme IEEE $754$) :</p>
<pre><code>0 | 10000001 | 01000000000000000000000</code></pre>
<p>(signe sur $1$ bit, exposant sur $8$ bits, mantisse sur<br/>
$23$ bits). Quelle est la valeur décimale représentée ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Procédure de décodage en trois étapes : (1) lire le bit de<br/>
signe ; (2) lire l'exposant biaisé $E$ et calculer<br/>
$e = E - 127$ ; (3) reconstituer la mantisse en préfixant le<br/>
bit implicite $1$, puis appliquer la formule<br/>
$(-1)^s \times 1{,}\!M \times 2^e$. Pour cette question :<br/>
$(-1)^0 \times 1{,}25 \times 2^2 = 5$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a oublié d'ajouter le bit implicite à la<br/>
mantisse. La forme normalisée IEEE $754$ stocke seulement<br/>
les bits <strong>après</strong> la virgule ; la valeur $1$ avant la<br/>
virgule est implicite. Ici, la mantisse vaut donc<br/>
$1{,}01_2 = 1{,}25$, pas $0{,}25$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : signe <code>0</code> (positif), exposant<br/>
$10000001_2 = 129$, donc $e = 129 - 127 = 2$. Mantisse<br/>
implicite $1{,}01_2 = 1{,}25$. Valeur :<br/>
$1{,}25 \times 2^2 = 5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur sur l'exposant : on a peut-être lu la mantisse à<br/>
l'envers ou doublé la puissance. L'exposant biaisé vaut<br/>
$129$, donc $e = 2$ et le facteur est $2^2 = 4$, pas<br/>
$2^3 = 8$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$-5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le bit de signe vaut $0$ (positif). Le résultat<br/>
est $+5$, pas $-5$.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
