<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Numération et représentation des entiers</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Systèmes de numération positionnels (binaire, décimal, hexadécimal),<br/>
conversions entre bases, opérations sur les entiers naturels,<br/>
représentation des entiers relatifs en complément à deux,<br/>
dépassement de capacité, applications (couleurs, adresses mémoire).</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q01 : Définition d'un bit</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que désigne précisément le mot <strong>bit</strong> en informatique ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le bit est l'unité élémentaire d'information en numérique.<br/>
Huit bits forment un octet. Les capacités de stockage usuelles<br/>
sont mesurées en octets, kilo-octets, méga-octets, etc.</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>Un groupe de huit chiffres binaires</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un groupe de huit chiffres binaires s'appelle un<br/>
<strong>octet</strong> (en anglais <em>byte</em>), pas un bit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une unité de mesure de la mémoire vive</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le bit est plutôt l'unité élémentaire d'information.<br/>
La mémoire vive se mesure en octets, kilo-octets,<br/>
giga-octets, etc.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un chiffre binaire pouvant valoir 0 ou 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : « bit » est la contraction de<br/>
<em>binary digit</em>. C'est l'unité élémentaire d'information,<br/>
qui ne peut prendre que deux valeurs 0 ou 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un nombre hexadécimal sur quatre chiffres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un chiffre hexadécimal correspond à quatre bits,<br/>
mais le bit lui-même est l'unité de base, pas un nombre<br/>
hexadécimal.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q02 : Symboles du système hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de symboles différents utilise le système hexadécimal<br/>
(base 16) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'hexadécimal est très utilisé en informatique pour sa<br/>
compacité : un chiffre hexadécimal correspond à exactement<br/>
quatre bits, soit la moitié d'un octet. Cela rend la lecture<br/>
des données binaires beaucoup plus aisée.</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</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le nombre de symboles du système décimal<br/>
(base 10). En hexadécimal, on a besoin de symboles<br/>
supplémentaires pour représenter 10, 11, \ldots, 15.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la base 16 utilise 16 symboles, à savoir<br/>
les chiffres 0 à 9 pour les valeurs 0 à 9, puis les<br/>
lettres A, B, C, D, E, F pour les valeurs 10 à 15.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le nombre de symboles de la base 2 (le<br/>
binaire), pas de la base 16.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>26</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec le nombre de lettres de<br/>
l'alphabet. L'hexadécimal utilise 10 chiffres et 6<br/>
lettres, soit 16 symboles au total.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q03 : Conversion binaire vers décimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 1011₂ en base décimale ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode : pour convertir un binaire en décimal, on associe à<br/>
chaque bit une puissance de 2 (en partant de la droite à<br/>
2⁰) et on additionne les puissances correspondant aux bits<br/>
à 1.</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>11</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 1011₂ = 1 · 8 + 0 · 4 + 1 · 2 + 1 · 1 = 11₁₀.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>13</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec 1101₂. Bien lire les<br/>
bits de gauche à droite et associer chacun à sa puissance<br/>
de 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : possible erreur de calcul ou décalage. Vérifier en<br/>
additionnant : 1011₂ = 8 + 2 + 1 = 11.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1011</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait la lecture comme un nombre décimal. Or<br/>
en base 2, chaque position a un poids différent<br/>
(puissance de 2, pas de 10).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q04 : Conversion décimal vers binaire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est l'écriture binaire (sur quatre bits) de l'entier<br/>
10 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode des divisions successives par 2 : 10 = 5 × 2 + 0,<br/>
5 = 2 × 2 + 1, 2 = 1 × 2 + 0, 1 = 0 × 2 + 1.<br/>
On lit les restes de bas en haut : 1010₂.</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>1010₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 10 = 8 + 2 = 1 · 2³ + 0 · 2² + 1 · 2¹ + 0 · 2⁰ = 1010₂.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0010₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 2₁₀. Confusion possible entre la<br/>
lecture de l'écriture décimale 10 et la valeur binaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1100₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 12₁₀, pas 10. Vérifier en<br/>
décomposant : 1100₂ = 8 + 4 = 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 5₁₀, pas 10. Possible inversion des<br/>
bits (lecture dans le mauvais sens).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q05 : Composition d'un octet</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de bits contient un octet ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le nom <em>octet</em> renvoie directement à « huit ». Le mot anglais<br/>
<em>byte</em> est utilisé dans la plupart des langages de<br/>
programmation.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 4 bits forment un demi-octet (parfois appelé<br/>
<em>quartet</em> ou <em>nibble</em>), équivalent à un chiffre hexadécimal.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un octet (en anglais <em>byte</em>) est un groupe<br/>
de huit bits. Il peut représenter 2⁸ = 256 valeurs<br/>
différentes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul bit ne forme pas un octet. Un bit est<br/>
l'unité élémentaire d'information.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 16 bits forment deux octets, soit un <em>short</em> ou<br/>
<em>word</em> selon les architectures.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q06 : Plus grand entier naturel sur un octet</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le plus grand entier naturel que l'on peut représenter<br/>
sur un octet (huit bits) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur n bits, on peut coder 2ⁿ valeurs différentes, soit les<br/>
entiers naturels de 0 à 2ⁿ - 1. Pour n = 8, c'est de 0<br/>
à 255.</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</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 128 est le seuil entre nombres positifs et<br/>
négatifs en complément à deux, mais ce n'est pas le<br/>
maximum d'un entier naturel sur un octet.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>255</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur huit bits, on peut coder les entiers<br/>
naturels de 0 à 2⁸ - 1 = 255. Le maximum correspond à<br/>
11111111₂.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>511</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 511 = 2⁹ - 1 est le maximum sur <strong>neuf</strong> bits,<br/>
pas huit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>256</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un octet permet 256 valeurs <strong>différentes</strong> (de<br/>
0 à 255), mais pas la valeur 256 elle-même.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q07 : Préfixes des bases en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, quel préfixe utilise-t-on pour écrire un littéral<br/>
hexadécimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python accepte trois préfixes : 0b (binaire), 0o (octal) et<br/>
0x (hexadécimal). On peut aussi utiliser int("FF", 16) pour<br/>
convertir une chaîne en entier dans une base donnée.</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>0o</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0o est le préfixe pour l'<strong>octal</strong> (base 8),<br/>
rarement utilisé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0b est le préfixe pour le <strong>binaire</strong> (par<br/>
exemple 0b101 == 5).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0h</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0h n'est pas un préfixe valide en Python. Cela<br/>
provoquerait une erreur de syntaxe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>0x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0x introduit un littéral hexadécimal.<br/>
Par exemple 0xFF == 255.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q08 : Bits par chiffre hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de bits sont nécessaires pour coder un chiffre<br/>
hexadécimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette correspondance exacte (un chiffre hexa = quatre bits) est<br/>
très pratique : pour convertir entre binaire et hexadécimal,<br/>
on regroupe simplement les bits par paquets de quatre, sans<br/>
calcul.</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>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : huit bits forment un octet, ce qui correspond à<br/>
<strong>deux</strong> chiffres hexadécimaux (de 00 à FF).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul bit ne permet de coder que deux valeurs<br/>
(0 et 1). Or l'hexadécimal nécessite seize valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2⁴ = 16, donc quatre bits suffisent à<br/>
coder les seize valeurs hexadécimales. C'est ce qui rend<br/>
la conversion entre hexadécimal et binaire si simple.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre la base (16 symboles) et le<br/>
nombre de bits requis. 4 bits suffisent puisque<br/>
2⁴ = 16.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q09 : Lecture d'un chiffre hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la valeur décimale de la lettre C utilisée comme<br/>
chiffre hexadécimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mémo : A vaut 10 et chaque lettre suivante incrémente<br/>
d'une unité, jusqu'à F qui vaut 15.</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>13</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 13 correspond à la lettre D. La lettre C<br/>
vient juste avant, donc vaut 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les lettres A, B, C, D, E, F valent<br/>
respectivement 10, 11, 12, 13, 14, 15.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>11</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 11 correspond à la lettre B. La lettre C<br/>
vient juste après, donc vaut 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec la position de C dans<br/>
l'alphabet. En hexadécimal, A vaut 10, B vaut 11, C<br/>
vaut 12, etc.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q10 : Bit de poids fort</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que désigne le <strong>bit de poids fort</strong> dans la représentation<br/>
binaire d'un nombre ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En complément à deux, le bit de poids fort joue un rôle<br/>
particulier : il indique le signe (0 pour positif, 1 pour<br/>
négatif).</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>Le bit le plus à gauche, qui correspond à la plus grande puissance de 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur n bits, le bit de poids fort est en<br/>
position n-1, avec un poids de 2ⁿ⁻¹.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le bit le plus à droite (de poids 2⁰)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le bit de poids <strong>faible</strong>. Le bit de poids<br/>
fort est au contraire celui dont la position a la plus<br/>
grande valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le bit qui change le plus souvent quand on incrémente le nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est au contraire le bit de poids <strong>faible</strong> qui<br/>
change à chaque incrément. Le bit de poids fort change le<br/>
moins souvent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le bit qui vaut systématiquement 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un bit de poids fort peut valoir 0 ou 1,<br/>
comme tout autre bit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q11 : Conversion binaire vers décimal sur huit bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 01001101₂ en base décimale ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Astuce : pour les conversions sur huit bits, mémoriser les<br/>
puissances de 2 jusqu'à 2⁷ = 128. La somme des bits à 1<br/>
donne directement la valeur décimale.</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>74</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de calcul : vérifier les puissances de 2 associées<br/>
aux bits à 1. On doit avoir 2⁶ + 2³ + 2² + 2⁰.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>77</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 01001101₂ = 64 + 8 + 4 + 1 = 77₁₀.<br/>
Les bits à 1 sont aux positions 6, 3, 2, 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>93</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 01011101₂. Lire attentivement les bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>109</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 01101101₂, pas 01001101₂. Bien<br/>
identifier la position de chaque bit à 1.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q12 : Conversion hexadécimal vers binaire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est l'écriture binaire de A3F₁₆ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un chiffre hexa = quatre bits. La conversion est purement<br/>
mécanique : il suffit de remplacer chaque chiffre hexa par les<br/>
quatre bits correspondants, dans l'ordre.</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>1010001111₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque deux bits. Chaque chiffre hexadécimal<br/>
doit être codé sur exactement quatre bits, en complétant<br/>
par des zéros à gauche si nécessaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>111000111101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : vérifier la conversion de chaque chiffre.<br/>
A → 1010, pas 1110.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>101000111111₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : A → 1010, 3 → 0011, F → 1111.<br/>
Mis bout à bout : 1010\ 0011\ 1111₂.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>111111000110₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a inversé l'ordre des chiffres. Lire de gauche<br/>
à droite : A puis 3 puis F.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q13 : Addition binaire avec retenue</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 1011₂ + 0110₂ (addition binaire sur quatre bits) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'addition binaire suit les mêmes règles que l'addition<br/>
décimale, avec retenues : 0+0 = 0, 0+1 = 1, 1+1 = 10<br/>
(retenue), 1+1+1 = 11 (retenue). Si le résultat sort de<br/>
l'intervalle de codage, on parle de dépassement.</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>0001₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on ne peut pas obtenir un nombre plus petit que<br/>
1011 en lui ajoutant un nombre positif. Vérifier la<br/>
retenue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec un XOR (différence) au<br/>
lieu d'une addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible entre OU logique et addition.<br/>
L'addition propage des retenues, contrairement au OU.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>10001₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 1011 + 0110 = 10001₂ (en posant l'addition<br/>
colonne par colonne, avec retenues). Vérification :<br/>
11 + 6 = 17 = 16 + 1 = 10001₂.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q14 : Intervalle de codage en complément à deux</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur huit bits en complément à deux, quel est l'intervalle des<br/>
entiers relatifs codables ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur n bits en complément à deux, l'intervalle est<br/>
[-2ⁿ⁻¹ ; 2ⁿ⁻¹ - 1]. La dissymétrie (un négatif de<br/>
plus) vient du fait que 0 est compté côté positif.</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>[-128 ; 127]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur n = 8 bits, l'intervalle est<br/>
[-2ⁿ⁻¹ ; 2ⁿ⁻¹ - 1] = [-128 ; 127].</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[-128 ; 128]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur 128 ne peut pas être codée car<br/>
10000000₂ vaut -128 en complément à deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[-127 ; 127]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il y a un négatif de plus que de positifs. La<br/>
plus petite valeur est -128, pas -127.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[0 ; 255]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'intervalle des entiers <strong>naturels</strong><br/>
(non signés) sur huit bits.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q15 : Calcul du complément à deux</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la représentation binaire de -19 sur huit bits, en<br/>
complément à deux ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les trois étapes du complément à deux : (1) écrire la valeur<br/>
absolue en binaire, (2) inverser tous les bits (complément à<br/>
un), (3) ajouter 1. Cela revient à calculer 2ⁿ - |x|.</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>11101101</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : étape par étape, 19 = 00010011, on<br/>
inverse → 11101100, on ajoute 1 → 11101101.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>11101100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le complément à un (inversion des bits)<br/>
mais on a oublié l'étape finale d'ajouter 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>11101110</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a ajouté 2 au lieu de 1 après inversion,<br/>
ou on a inversé un bit de plus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10010011</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la <strong>représentation naïve</strong> (signe + valeur<br/>
absolue), qui n'est pas le complément à deux. Cette<br/>
notation a des défauts qui justifient justement le<br/>
complément à deux.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q16 : Lecture d'un nombre négatif</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 11111101₂ interprété en complément à deux sur huit<br/>
bits ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode : si le bit de poids fort vaut 1, le nombre est<br/>
négatif. On retrouve sa valeur absolue en appliquant à<br/>
nouveau le complément à deux (inversion + 1).</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>-125</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible. Vérifier en posant l'addition<br/>
00000011 + 11111101 : si on obtient 00000000 (avec<br/>
retenue ignorée), c'est bien 3 et -3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>-253</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a oublié que la valeur absolue se déduit en<br/>
appliquant à nouveau le complément à deux, pas en lisant<br/>
la magnitude restante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>253</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la lecture comme entier <strong>naturel</strong>. Or le<br/>
bit de poids fort à 1 indique un nombre négatif en<br/>
complément à deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on inverse → 00000010, on ajoute 1 →<br/>
00000011 = 3, le bit de poids fort à 1 donne le signe<br/>
négatif. Donc -3.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q17 : Couleurs HTML en hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En CSS, la couleur #FF5733 est codée en hexadécimal sur six<br/>
chiffres. Que vaut la composante rouge en décimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une couleur RVB sur huit bits par composante prend la forme<br/>
#RRVVBB où chaque paire de chiffres hexa code une valeur<br/>
entre 00 et FF (0 et 255). Ici : rouge = FF = 255,<br/>
vert = 57 = 87, bleu = 33 = 51.</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>33</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre la lecture décimale et<br/>
hexadécimale. 33₁₆ = 3 · 16 + 3 = 51₁₀.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>87</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 87 correspond à la composante verte 57₁₆.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>255</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la composante rouge est FF₁₆, soit<br/>
15 · 16 + 15 = 255₁₀. C'est le maximum possible<br/>
pour une composante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>51</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 51 correspond à la composante bleue 33₁₆.<br/>
Les composantes sont dans l'ordre RVB (rouge, vert, bleu).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q18 : Nombre de valeurs codables</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de valeurs différentes peut-on représenter sur n bits ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette croissance exponentielle explique pourquoi les<br/>
processeurs 64 bits (2⁶⁴ adresses possibles) couvrent<br/>
toute la mémoire imaginable, alors que les processeurs 32<br/>
bits (≈ 4 · 10⁹ adresses) sont déjà saturés pour<br/>
la mémoire moderne.</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>n</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre le nombre de bits et le nombre de<br/>
valeurs. Avec 1 bit on a 2 valeurs, avec 2 bits on<br/>
en a 4, pas 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 · n</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la croissance n'est pas linéaire mais<br/>
<strong>exponentielle</strong>. Chaque bit supplémentaire double le<br/>
nombre de valeurs possibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>2ⁿ</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque bit pouvant prendre deux valeurs<br/>
indépendamment des autres, n bits permettent<br/>
2 × 2 × ·s × 2 = 2ⁿ combinaisons.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n²</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la croissance n'est pas polynomiale mais<br/>
exponentielle. Pour n = 10, on a 2¹⁰ = 1024, pas<br/>
100.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q19 : Astuce rapide du complément à deux</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour calculer rapidement le complément à deux d'un nombre, on<br/>
parcourt ses bits <strong>de droite à gauche</strong>. Que fait-on ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Exemple : 20 = 00010100. On garde « ...100 » (jusqu'au<br/>
premier 1 depuis la droite) et on inverse le reste :<br/>
11101100 = -20. Cette astuce évite l'étape « inversion +<br/>
addition de 1 ».</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>On ajoute 1 à chaque bit individuellement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas une opération sensée en binaire<br/>
(chaque bit ne vaut que 0 ou 1).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>On inverse tous les bits sans exception</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le complément à <strong>un</strong>. L'astuce du<br/>
complément à deux laisse une partie des bits inchangée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>On garde les bits jusqu'au premier 1 inclus, puis on inverse les bits suivants</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on conserve la partie droite (zéros et le<br/>
premier 1) et on inverse tout le reste à gauche. Cela<br/>
évite les étapes intermédiaires.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>On inverse les bits jusqu'au premier 1, puis on garde les suivants</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse de la bonne règle. On commence par<br/>
<strong>garder</strong> la partie droite, puis on inverse à gauche.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q20 : Asymétrie positifs/négatifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi y a-t-il un négatif de plus que de positifs en<br/>
complément à deux ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur huit bits, on a 256 codes : 128 pour les non négatifs<br/>
(0, 1, \ldots, 127) et 128 pour les négatifs<br/>
(-128, -127, \ldots, -1). C'est une particularité du<br/>
complément à deux qu'il faut connaître.</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 le complément à deux gaspille un code</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : au contraire, le complément à deux n'a pas de<br/>
double représentation du zéro, il utilise donc tous les<br/>
codes possibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que la représentation est moins efficace pour les positifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la représentation est efficace symétrique pour la<br/>
plupart des opérations. La dissymétrie tient à un autre<br/>
phénomène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce que 0 est compté du côté des positifs et n'a qu'une seule représentation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur n bits, on a 2ⁿ codes différents,<br/>
dont une moitié pour les négatifs et une moitié pour les<br/>
positifs. Comme 0 est compté avec les positifs, il y en<br/>
a un de moins côté positif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les nombres négatifs prennent plus de bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tous les codes ont la même longueur en bits.<br/>
C'est la convention de signe qui crée la dissymétrie.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q21 : Dépassement de capacité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur huit bits en complément à deux, que renvoie l'addition<br/>
127 + 1 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le dépassement est un piège classique en C/Java. En complément<br/>
à deux, l'incrément du plus grand positif donne le plus petit<br/>
négatif. C'est la cause de bugs célèbres (faille de<br/>
l'algorithme de tri, débordement dans les calculs financiers).</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</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec une remise à zéro après<br/>
débordement, qui se produit pour les entiers non signés<br/>
(255 + 1 = 0 mod 256). Ici, on est en signé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 01111111 + 00000001 = 10000000. Or sur<br/>
huit bits en complément à deux, 10000000₂ = -128. Il y<br/>
a dépassement de capacité (<em>overflow</em>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python n'a pas de limite de taille des entiers,<br/>
donc cette question concerne les langages à entiers de<br/>
taille fixe (C, Java, etc.). En Python, 127 + 1 = 128<br/>
sans souci.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 128 n'est pas représentable sur huit bits en<br/>
complément à deux (l'intervalle s'arrête à 127). Le<br/>
résultat est donc « tordu ».</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q22 : Défaut de la représentation naïve</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi n'utilise-t-on pas la <strong>représentation naïve</strong> (bit de<br/>
poids fort = signe, autres bits = valeur absolue) pour coder<br/>
les entiers relatifs ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>C'est précisément pour pouvoir réutiliser le circuit<br/>
d'addition standard que les processeurs adoptent le complément<br/>
à deux. La représentation naïve aurait aussi le défaut d'avoir<br/>
deux représentations du zéro (+0 et -0).</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 qu'elle ne permet pas de coder les nombres négatifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : elle code bien les négatifs, mais avec deux<br/>
défauts qui la rendent peu pratique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'elle utilise plus de bits que le complément à deux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux représentations utilisent le même nombre<br/>
de bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce que l'addition binaire usuelle ne donne pas le bon résultat sur les négatifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec la représentation naïve, on ne peut<br/>
plus utiliser l'additionneur standard pour les<br/>
soustractions. Le complément à deux résout ce problème :<br/>
le <strong>même circuit</strong> d'addition fonctionne pour positifs et<br/>
négatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'elle est plus lente à interpréter</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la lecture est en réalité <strong>plus simple</strong> (signe<br/>
+ valeur absolue). Le problème est ailleurs : dans<br/>
l'arithmétique.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q23 : Différence entre complément à un et complément à deux</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En quoi le <strong>complément à deux</strong> diffère-t-il du <strong>complément à un</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le complément à un (inversion seule) crée deux représentations<br/>
du zéro (00\ldots0 et 11\ldots1). L'ajout du « +1 » du<br/>
complément à deux fait fusionner ces deux zéros et permet<br/>
d'utiliser l'arithmétique standard sans correction.</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 complément à un est calculé sur deux bits, le complément à deux sur deux octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion sur les noms. Aucune des deux<br/>
appellations ne renvoie au nombre de bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le complément à deux n'utilise pas le bit de poids fort comme signe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : au contraire, le bit de poids fort sert de<br/>
signe en complément à deux (0 pour positif, 1 pour<br/>
négatif).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le complément à un ne fonctionne que pour les nombres positifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le complément à un peut s'appliquer à n'importe<br/>
quel motif binaire ; c'est juste une inversion de bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le complément à un inverse tous les bits ; le complément à deux inverse tous les bits puis ajoute 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le complément à un est l'étape<br/>
intermédiaire de l'opération du complément à deux. Le « +1 »<br/>
final corrige la double représentation du zéro qui<br/>
subsisterait sans cette correction.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q24 : Cas particulier de la valeur minimum</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur huit bits en complément à deux, à quoi correspond le motif<br/>
10000000₂ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette valeur est piégeuse : son opposé +128 n'existe pas en<br/>
huit bits signés. Calculer -(-128) provoque un dépassement<br/>
qui ramène à -128 lui-même. C'est une source classique de<br/>
bugs en C ou Java.</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</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0 est codé 00000000. Le motif 10000000 est<br/>
la plus petite valeur signée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>-127</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur -127 correspond à 10000001₂. Le<br/>
motif 10000000 correspond à un cas un peu spécial.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : -128 = -2ⁿ⁻¹ = -2⁷. C'est la valeur<br/>
minimum codable sur huit bits en complément à deux. Cette<br/>
valeur n'a pas d'opposé représentable (il n'y a pas<br/>
+128).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 128 n'est pas représentable sur huit bits en<br/>
complément à deux (l'intervalle s'arrête à 127).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q25 : Entiers en Python vs en C</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, l'expression 2 ** 100 donne un nombre entier<br/>
exact, alors qu'en C ou en Java elle provoquerait un<br/>
dépassement. Pourquoi ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette caractéristique est un atout pédagogique de Python :<br/>
l'élève n'a pas à se soucier des limites de codage. Mais cela<br/>
a un coût : les opérations sur de très grands entiers sont<br/>
plus lentes que sur des entiers de taille fixe.</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>Python utilise des nombres flottants pour tous les calculs entiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python distingue bien les entiers (int) des<br/>
flottants (float). 2¹⁰⁰ est calculé comme un entier<br/>
exact, pas approché.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python tronque silencieusement les entiers trop grands</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune troncature. Le résultat est exact, même<br/>
pour des nombres immenses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python fait des calculs modulo 2⁶⁴</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le comportement de C/Java sur entiers<br/>
64 bits. Python n'a pas de modulo implicite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Python adapte automatiquement la mémoire allouée aux entiers, sans limite fixe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les entiers Python sont en <strong>précision<br/>
arbitraire</strong>. L'interpréteur réserve autant de mémoire que<br/>
nécessaire pour représenter le nombre exactement.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q26 : Conversion décimal vers hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est l'écriture hexadécimale de l'entier 195 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode des divisions successives par 16 : tant que le<br/>
quotient n'est pas nul, on note le reste et on continue avec<br/>
le quotient. Ici, 195 ÷ 16 = 12 reste 3, puis<br/>
12 ÷ 16 = 0 reste 12 (\text{C}). On lit les restes<br/>
du dernier au premier : \text{C3}_{16}.</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>\text{C3}_{16}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 195 = 12 × 16 + 3. Le quotient 12<br/>
s'écrit \text{C} et le reste 3 s'écrit 3, d'où<br/>
\text{C3}_{16}.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\text{C5}_{16}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur sur le reste : 195 - 12 × 16 = 195 - 192 = 3<br/>
(et non 5). Bien vérifier la soustraction finale qui<br/>
donne le dernier chiffre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\text{3C}_{16}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les chiffres ont été inversés. Le quotient se<br/>
lit en premier (à gauche), suivi du reste à droite. Le<br/>
bon résultat est \text{C3}_{16}.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\text{A3}_{16}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur sur le quotient : on a pris la lettre \text{A}<br/>
(qui vaut 10) au lieu de \text{C} (qui vaut 12). Or<br/>
195 ÷ 16 = 12 reste 3, donc le chiffre des<br/>
« seize » est bien \text{C}.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q27 : Nombre minimum de bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de bits sont nécessaires au minimum pour coder en<br/>
binaire l'entier naturel 287 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode : chercher le plus petit n tel que 2ⁿ - 1 ≥ 287,<br/>
ou de façon équivalente 2ⁿ ≥ 288. Ici, 2⁸ = 256 et<br/>
2⁹ = 512, donc le minimum est n = 9. De manière plus<br/>
formelle, ce nombre est \lceil \log_2(287 + 1) \rceil = 9.</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>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on cherche le plus petit n tel que<br/>
2ⁿ &gt; 287. Or 2⁸ = 256 (insuffisant) et 2⁹ = 512<br/>
(suffisant), donc n = 9.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sur 7 bits, on peut coder les entiers de 0<br/>
à 2⁷ - 1 = 127. Or 287 &gt; 127, donc 7 bits ne<br/>
suffisent pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sur 8 bits, on couvre l'intervalle<br/>
[0 ; 2⁸ - 1] = [0 ; 255]. Comme 287 &gt; 255, un<br/>
octet est encore insuffisant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 10 bits suffisent largement (ils couvrent<br/>
jusqu'à 1023), mais ce n'est pas le <strong>minimum</strong>. Avec<br/>
9 bits, on atteint déjà 511, ce qui est suffisant<br/>
pour 287.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q28 : Décalage binaire à gauche</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, que vaut l'expression 12 &lt;&lt; 2 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'opérateur &lt;&lt; (décalage à gauche) déplace tous les bits<br/>
vers la gauche, en complétant à droite par des zéros. Sur<br/>
l'écriture binaire de 12 = 1100₂, deux décalages donnent<br/>
110000₂ = 48. C'est l'équivalent rapide de la<br/>
multiplication par 2ᵏ ; l'opérateur inverse &gt;&gt; divise<br/>
entièrement par 2ᵏ.</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>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a interprété &lt;&lt; comme une addition<br/>
(12 + 2 = 14). Or l'opérateur &lt;&lt; est un <strong>décalage de<br/>
bits</strong>, pas une addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>48</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : n &lt;&lt; k décale les bits de n de k<br/>
positions vers la gauche, ce qui équivaut à multiplier<br/>
par 2ᵏ. Ici, 12 × 2² = 12 × 4 = 48.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>24</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a multiplié par 2 une seule fois.<br/>
L'opérateur &lt;&lt; décale de 2 positions, ce qui revient<br/>
à multiplier par 2² = 4, pas par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a effectué un décalage à <strong>droite</strong> (&gt;&gt;),<br/>
qui correspond à une division entière par 2ᵏ, soit<br/>
12 // 4 = 3. Ici, c'est &lt;&lt; qui décale à <strong>gauche</strong>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q29 : Plus grand entier non signé sur 32 bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le plus grand entier naturel (non signé) que l'on<br/>
peut représenter sur 32 bits ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur n bits, l'intervalle des entiers naturels codables est<br/>
[0 ; 2ⁿ - 1]. Pour 32 bits, cela donne environ<br/>
4{,}3 milliards de valeurs, ce qui correspond<br/>
historiquement à la limite de 4 Go pour la mémoire vive<br/>
adressable directement par un processeur 32 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>2 × 32</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la quantité de valeurs codables croît de façon<br/>
<strong>exponentielle</strong>, pas linéaire. Chaque bit<br/>
supplémentaire double le nombre de valeurs possibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>2³² - 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur n bits, le plus grand entier<br/>
naturel codable est 2ⁿ - 1. Pour n = 32, cela vaut<br/>
4 294 967 295, soit environ 4{,}3 \times 10^9.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2¹⁶</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2¹⁶ - 1 = 65 535 est le maximum sur 16<br/>
bits, pas sur 32. Doubler le nombre de bits élève le<br/>
maximum à un carré (à un près), pas en double.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2³²</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on peut représenter 2³² valeurs<br/>
<strong>différentes</strong> (de 0 à 2³² - 1), mais la valeur<br/>
2³² elle-même nécessiterait 33 bits.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
