<?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 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>
  <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 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>
</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="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="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>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="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>
  <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>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="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>
</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, 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>0101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 5₁₀, pas 10. Tous les bits ont<br/>
été inversés (0 et 1 échangés).</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>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>
</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="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 16 bits forment deux octets, l'une des<br/>
tailles courantes des entiers avec 8, 32 et 64 bits.</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="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>
</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>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>
  <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>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>
</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>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>
  <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>
</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="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>
  <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="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>
</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="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>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>
  <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="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>
</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="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 le plus à droite dans l'écriture du nombre (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="100" format="html">
    <text><![CDATA[<p>Le bit le plus à gauche dans l'écriture du nombre</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ⁿ⁻¹, la plus<br/>
grande puissance de 2 de l'écriture.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le bit qui vaut systématiquement 1 dans tout nombre binaire</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>93</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 01011101₂. Lire attentivement les bits.</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>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>
  <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>
</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="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>1010111111₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque 2 bits. Chaque chiffre<br/>
hexadécimal doit être codé sur exactement quatre bits, en<br/>
complétant par des zéros à gauche si nécessaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>111100111010₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la conversion de F3A₁₆, les chiffres<br/>
hexadécimaux ont été lus dans le mauvais ordre. Lire de<br/>
gauche à droite : A puis 3 puis F.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>101001000000₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'écriture de A40₁₆, le dernier<br/>
quartet est faux. Convertir chaque chiffre séparément,<br/>
sans retenue d'un quartet à l'autre.</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₂ ? Les opérandes sont codés sur<br/>
quatre bits ; donnez le résultat complet de l'addition posée.</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>1101₂</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>0001₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la retenue finale a été perdue. La somme dépasse<br/>
quatre bits, le résultat complet en compte cinq.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1111₂</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="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>
  <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="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>
</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>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="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="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>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>
  <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₁₀.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>30</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a additionné les deux chiffres hexadécimaux<br/>
(15 + 15) au lieu de multiplier le premier par 16 :<br/>
FF₁₆ = 15 · 16 + 15 = 255₁₀.</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>
</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="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>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="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 inverse tous les bits sans exception, du poids faible au poids fort</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 et on inverse le reste</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>On ajoute 1 à chaque bit individuellement, colonne par colonne</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>
</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 les nombres négatifs prennent plus de bits que les positifs</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce que 0 est compté du côté des positifs</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 n'a qu'une seule représentation et<br/>
qu'il est compté avec les positifs, il y en a un de moins<br/>
côté positif.</p>]]></text>
    </feedback>
  </answer>
  <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 tout aussi efficace pour<br/>
les positifs que pour les négatifs. La dissymétrie tient<br/>
à un autre phénomène.</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 des langages à entiers de<br/>
taille fixe. En complément à deux, l'incrément du plus grand<br/>
positif donne le plus petit négatif. C'est la cause de bugs<br/>
célèbres, comme le compteur de vues 32 bits de YouTube dépassé<br/>
en 2014 par <em>Gangnam Style</em>.</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="0" format="html">
    <text><![CDATA[<p>128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 128 n'est pas représentable sur 8 bits en<br/>
complément à deux (l'intervalle s'arrête à 127). Le<br/>
résultat est donc « tordu ».</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="100" format="html">
    <text><![CDATA[<p>-128</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 01111111 + 00000001 = 10000000. Or sur<br/>
8 bits en complément à deux, 10000000₂ = -128. Il y<br/>
a dépassement de capacité (<em>overflow</em>).</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="100" format="html">
    <text><![CDATA[<p>Parce que l'addition binaire usuelle échoue 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 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="0" format="html">
    <text><![CDATA[<p>Parce qu'elle est plus lente à interpréter pour le processeur</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 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="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 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="100" format="html">
    <text><![CDATA[<p>Le complément à deux ajoute 1 après l'inversion de tous les bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le complément à un s'arrête à l'inversion<br/>
des bits ; c'est l'étape intermédiaire de l'opération du<br/>
complément à deux. Le « +1 » final corrige la double<br/>
représentation du zéro qui subsisterait sans cette<br/>
correction.</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 fait tous ses calculs entiers 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 alloue aux entiers autant de mémoire que nécessaire</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 adapte automatiquement, sans<br/>
limite fixe, la mémoire réservée pour représenter le<br/>
nombre exactement.</p>]]></text>
    </feedback>
  </answer>
  <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>
</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="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="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 \text{3},<br/>
d'où \text{C3}_{16}.</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 \text{A} (qui vaut<br/>
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<br/>
et 2⁹ = 512, donc le minimum est n = 9. De manière<br/>
plus 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<br/>
2⁹ = 512 (suffisant), donc n = 9.</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>
  <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<br/>
7 bits ne 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<br/>
287 &gt; 255, c'est encore insuffisant.</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 \times 10^{9} valeurs. Les processeurs 32 bits ne<br/>
pouvaient ainsi adresser directement que 4 Go de mémoire<br/>
vive.</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="0" format="html">
    <text><![CDATA[<p>2¹⁶</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2¹⁶ - 1 = 65 535 est le maximum sur<br/>
16 bits, pas sur 32. Doubler le nombre de bits<br/>
élève le 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>
  <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>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q30 : Bits nécessaires à une somme</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Deux entiers naturels s'écrivent chacun sur 8 bits<br/>
au plus. Sur combien de bits au plus s'écrit leur<br/>
somme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Additionner deux nombres de n bits donne au plus<br/>
2 · (2ⁿ - 1) = 2ⁿ⁺¹ - 2, qui tient sur<br/>
n + 1 bits. Une retenue finale au plus : un seul<br/>
bit supplémentaire.</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 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>9 bits suffisent déjà ; un bit de plus n'est<br/>
jamais nécessaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>255 + 255 = 510 dépasse 255, le plus<br/>
grand entier sur 8 bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>16 bits correspondent au produit, pas à la<br/>
somme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>9 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La somme vaut au plus 510, inférieure à<br/>
2⁹ = 512 : 9 bits suffisent toujours.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q31 : Bits nécessaires à un produit</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Deux entiers naturels s'écrivent chacun sur 8 bits<br/>
au plus. Sur combien de bits au plus s'écrit leur<br/>
produit ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Multiplier deux nombres de n bits donne au plus<br/>
(2ⁿ - 1)² &lt; 2²ⁿ : le produit tient sur 2n<br/>
bits. C'est pourquoi multiplier deux entiers de<br/>
32 bits peut exiger 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>64 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>16 bits suffisent ; 64 bits seraient<br/>
un gaspillage sans justification.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>9 bits suffisent pour la somme ; le produit<br/>
grandit bien plus vite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>255 × 255 dépasse de loin 255.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>16 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>255 × 255 = 65 025 &lt; 2¹⁶ = 65 536 :<br/>
16 bits suffisent toujours.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q32 : Taille du produit de deux nombres binaires</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Soit a = 1101₂ et b = 1010₂. Sur combien de<br/>
bits s'écrit exactement le produit a × b ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Convertir, multiplier, reconvertir : 13 × 10 = 130, et 128 ≤ 130 &lt; 256 place le<br/>
résultat entre 2⁷ et 2⁸, donc sur 8<br/>
bits. La borne générale (2n bits pour deux facteurs<br/>
de n bits) est atteinte ici.</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>7 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>130 dépasse 127 = 2⁷ - 1, le plus grand<br/>
entier sur 7 bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>a = 13, b = 10, a × b = 130 = 10000010₂ : 8 bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Seize bits serait la borne pour des facteurs de<br/>
huit bits ; ici les facteurs ont quatre bits et<br/>
130 &lt; 256.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un produit de deux nombres de quatre bits dépasse<br/>
presque toujours 15.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q33 : Le poids du bit de signe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En complément à deux sur 8 bits, le bit de poids fort pèse -128<br/>
au lieu de +128. Que vaut l'octet 10000011₂ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Lire un entier signé revient à une lecture positionnelle ordinaire<br/>
où le bit de poids fort compte négativement : c'est ce qui rend<br/>
l'addition binaire valable pour tous les signes.</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>131</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur non signée, avec un bit de poids fort<br/>
à +128. En complément à deux, ce bit vaut -128.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 est la valeur des sept bits de droite, il reste à<br/>
ajouter le poids -128 du premier bit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>-3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le bit de poids fort n'est pas un simple signe devant<br/>
les autres bits ; il pèse -128, ce qui donne -128 + 3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-125</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : -128 + 3 = -125. Les sept autres bits gardent<br/>
leurs poids habituels, seul le premier est négatif.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q34 : Une addition avec un nombre négatif</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur 8 bits en complément à deux, on additionne 3, codé<br/>
00000011₂, et -5, codé 11111011₂, en ignorant une éventuelle<br/>
retenue sortante. Quel est le résultat ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En complément à deux, soustraire revient à additionner l'opposé.<br/>
La retenue qui sort du huitième bit est ignorée, et le résultat se<br/>
lit avec le bit de poids fort à -128.</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>00001000₂, soit 8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 serait 3 + 5. Le second opérande est<br/>
-5, et son codage en complément à deux fait bien soustraire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>11111110₂, soit 8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'octet est correct mais sa lecture non. En complément<br/>
à deux, 11111110₂ vaut -2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, les nombres négatifs ne s'additionnant pas en binaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est tout l'intérêt du complément à deux : la même<br/>
addition fonctionne quel que soit le signe des opérandes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>11111110₂, soit -2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'addition binaire ordinaire donne 11111110₂<br/>
une fois la retenue sortante écartée, et cet octet se lit<br/>
-2 en complément à deux. Le même circuit sert aux deux<br/>
signes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q35 : Conversion hexadécimal vers décimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 2F₁₆ en décimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En base 16, les positions valent 1, 16, 256, et ainsi de<br/>
suite, et les chiffres de A à F valent 10 à 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>242</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les poids sont inversés. Le chiffre de gauche est celui<br/>
des seizaines.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>17</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les chiffres ne s'additionnent pas simplement, le<br/>
premier vaut 2 × 16.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>47</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2 × 16 + 15 = 47. Chaque chiffre<br/>
hexadécimal pèse une puissance de 16.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>215</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les chiffres ont été convertis séparément puis collés.<br/>
Il faut pondérer le premier par 16.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q36 : Intérêt de l'écriture hexadécimale</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi les adresses mémoire ou les codes de couleurs sont-ils<br/>
souvent écrits en hexadécimal plutôt qu'en binaire ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Seize est une puissance de deux : chaque chiffre hexadécimal<br/>
correspond à un groupe de quatre bits, d'où une notation compacte<br/>
et facile à convertir.</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'un chiffre hexadécimal remplace exactement quatre bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'écriture est quatre fois plus courte et la<br/>
conversion avec le binaire se fait chiffre par chiffre, sans<br/>
calcul.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les lettres de A à F rendent les nombres plus lisibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les lettres ne sont qu'un moyen d'avoir seize symboles ;<br/>
l'avantage vient de la correspondance avec les groupes de quatre<br/>
bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que l'hexadécimal permet de coder des nombres plus grands</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la base ne change pas les valeurs codables, seulement<br/>
la longueur de leur écriture.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les processeurs calculent nativement en base seize</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les circuits travaillent en binaire. L'hexadécimal est<br/>
une notation pour les humains.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q37 : Multiplier par deux en binaire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 1011₂ × 2, en binaire ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En base deux, multiplier par 2 revient à ajouter un 0 à droite,<br/>
exactement comme multiplier par 10 en base dix.</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>10110₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : multiplier par deux décale tous les chiffres<br/>
d'un rang vers la gauche et ajoute un 0 à droite, comme<br/>
multiplier par dix ajoute un 0 en décimal.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>101₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : retirer le dernier chiffre divise par deux, au lieu de<br/>
multiplier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1100₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 1011₂ + 1. Multiplier par deux ne consiste pas<br/>
à ajouter un.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10111₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le chiffre ajouté à droite est un 0, pas un 1. Un<br/>
nombre pair se termine toujours par 0 en binaire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q38 : Une somme qui change de signe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un programme additionne 100 et 100 dans une variable sur 8<br/>
bits signés en complément à deux. Quel résultat obtient-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur 8 bits signés, les valeurs vont de -128 à 127. Au-delà, la<br/>
somme boucle : 200 devient -56.</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>127, la valeur étant plafonnée au maximum</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'arithmétique binaire ne plafonne pas, elle boucle. Le<br/>
résultat repart du côté négatif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur signalée par le processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le dépassement passe souvent inaperçu, c'est ce qui le<br/>
rend dangereux. Python, lui, évite le problème avec des entiers<br/>
de taille illimitée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-56</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 200 dépasse 127. L'octet obtenu, 11001000₂,<br/>
a son bit de poids fort à 1 et se lit 200 - 256 = -56.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>200</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 200 ne tient pas sur 8 bits signés, dont le maximum<br/>
est 127. Le résultat déborde.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q39 : Le signe d'un entier codé sur huit bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En complément à deux sur huit bits, le motif 10010110 représente un<br/>
entier. Quel est son signe ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le bit de poids fort est le bit de signe : il pèse -128 sur huit<br/>
bits, et sa présence rend la valeur négative.</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>Impossible à dire sans connaître la machine</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la convention du complément à deux suffit, le bit de<br/>
poids fort porte le signe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Nul, le motif n'étant pas valide en complément à deux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tout motif de huit bits représente un entier entre<br/>
-128 et 127.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Négatif, le bit de poids fort étant 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en complément à deux, le bit de poids fort<br/>
vaut 1 pour les négatifs et 0 pour les positifs. Ici le<br/>
motif représente -106.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Positif, le bit de poids fort étant 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur du bit de poids fort est juste, mais sa<br/>
lecture est inversée ; 1 signale un négatif.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q40 : La plage des entiers signés sur n bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quels entiers peut-on représenter en complément à deux sur 16<br/>
bits ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur n bits, le complément à deux couvre [-2ⁿ⁻¹, 2ⁿ⁻¹ - 1] :<br/>
les 2ⁿ motifs sont partagés en deux moitiés inégales d'un.</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>De 0 à 65535</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la plage des entiers non signés sur 16 bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>De -32768 à 32767</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la moitié des 2¹⁶ motifs sert aux<br/>
négatifs, de -2¹⁵ à -1, l'autre moitié aux positifs<br/>
et à zéro, de 0 à 2¹⁵ - 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>De -65535 à 65535</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cela demanderait 2 × 65535 + 1 motifs, plus que<br/>
les 2¹⁶ disponibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>De -32767 à 32767</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la plage n'est pas symétrique, il y a un négatif de<br/>
plus que de positifs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q41 : Une addition qui déborde dans le bit de signe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une machine additionne 127 et 1 en complément à deux sur<br/>
huit bits, sans détecter le dépassement. Quel résultat<br/>
affiche-t-elle ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Additionner deux positifs peut donner un négatif en complément à<br/>
deux : c'est le dépassement de capacité, invisible sans<br/>
vérification.</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>127, la valeur étant plafonnée au maximum</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien ne plafonne, le motif continue au-delà et change<br/>
de signe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-128, la retenue ayant basculé le bit de signe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 128 dépasse 127 ; son motif sur huit bits<br/>
a le bit de poids fort à 1 et se lit 128 - 256 = -128.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>128, l'addition de deux positifs étant toujours exacte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 128 ne tient pas sur sept bits de valeur, le<br/>
résultat déborde.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0, le dépassement remettant le résultat à zéro</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seule la retenue sortante est perdue, pas les autres<br/>
bits.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q42 : Conversion décimal vers hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment s'écrit 171 en hexadécimal ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Divisions successives par 16 : les restes, lus du dernier au<br/>
premier, forment l'écriture hexadé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="100" format="html">
    <text><![CDATA[<p>0xAB</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 171 = 10 × 16 + 11 ; on écrit chaque<br/>
reste avec un chiffre hexadécimal, de 0 à 9 puis de A<br/>
à F, du dernier quotient au premier reste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0x1011</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les restes 10 et 11 ont été recopiés en<br/>
décimal au lieu d'être convertis en chiffres hexadécimaux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0xBA</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les restes sont écrits dans l'ordre inverse ; le<br/>
dernier quotient donne le chiffre de gauche.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0x171</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : écrire les chiffres décimaux après 0x donne un tout<br/>
autre nombre.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Numération et représentation des entiers — Q43 : Comparer deux écritures hexadécimales</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lequel de 0x9A et 0xA0 est le plus grand ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comparer deux nombres hexadécimaux de même longueur se fait<br/>
chiffre par chiffre depuis la gauche, les lettres valant plus que<br/>
les chiffres.</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>0xA0, qui vaut 160</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0x9A vaut 154 et 0xA0 vaut 160.<br/>
En hexadécimal, les lettres A à F valent 10 à 15 et<br/>
dépassent donc les chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0x9A, qui vaut 154</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0x9A vaut bien 154, mais c'est le plus petit<br/>
des deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les deux sont égaux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : deux écritures hexadécimales différentes désignent<br/>
deux nombres différents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Impossible à comparer sans passer par le binaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on compare en convertissant en décimal, ou chiffre<br/>
par chiffre depuis la gauche.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
