Correction de la série d'exercices no 1
Exercice 1-1 : Représentation binaire et décimale
des nombres
- 358 <=> 0001 0110 0110
2047 <=> 0111 1111 1111
- 10110011100011110000
<=>24+25+26+27+211+212+213+216+217+219
= 735472
Exercice 1-2 : Bits - application
- Image
- Image : 1024 * 1024 * 24 bits = 25'165'824 bits
- Modem : 56 * 1024 bits / seconde = 57'344 bits / seconde
- Temps de téléchargement : 25'165'824 / 57'344 =
438.9 secondes
- Pages
- Caractère : 8 bits / caractére
- 10 pages à 1000 caractères / page : 10 * 1000 * 8 =
80'000 bits
- Temps de téléchargement : 80'000 / 57'344 = 1.4
sec
Exercice 1-3 : Représentation binaire et hexadécimale
des couleurs
- E1997B <=> 1110 0001 1001 1001 0111 1011
- 0010 1101 1011 1111 1010 1000 <=> 16' 2D BF A8 (16' signifie
que le nombre qui suit est un code hexadécimal)
- 09FF09 <=> vert (FF code pour le vert, or F correspond
à la valeur maximale possible en hexadécimal (1111))
- violet foncé <=> DC34DE (valeurs élevées pour le code du rouge
et du bleu, valeurs faibles pour le code du vert)
Pour vérifier les résultats, aller sur http://dotcraze.com/hex.htm (pas
disponible depuis les salles d'ordinateurs).
Exercice 1-4 : Représentation binaire et hexadécimale de
texte ascii
BON
Exercice 1-5 : Hypothetical Computer PIPPIN et code generation
- Echanger le contenu des cellules 158 et 159
- [0] LOD 158 ; charge le contenu de la cellule 158 dans
l'accumulateur
- [2] STO 200 ; stocke le contenu de l'accumulateur dans la cellule
200
- [4] LOD 159 ; charge le contenu de la cellule 159 dans
l'accumulateur
- [6] STO 158 ; stocke le contenu de l'accumulateur dans la cellule
158
- [8] LOD 200 ; charge le contenu de la cellule 200 dans
l'accumulateur
- [10] STO 159 ; stocke le contenu de l'accumulateur dans la cellule
159
- Si (x<5y), mettre 1 dans l'accumulateur, sinon mettre 10
- [0] LOD #5 ; charge le chiffre 5 dans l'accumulateur
- [2] MUL Y ; multiplie le contenu de l'accumulateur par le contenu de
la cellule Y (5Y dans l'accumulateur)
- [4] STO Z ; stocke le résultat dans la cellule Z (5Y dans
la cellule Z)
- [6] LOD X ; charge le contenu de la cellule X dans
l'accumulateur
- [8] SUB Z ; soustrait le contenu de la cellule Z au contenu de
l'accumulateur (X - 5Y dans l'accumulateur)
- [10] STO Z ; stocke le résultat dans la cellule Z (X - 5Y
dans la
cellule Z)
- [12] CPL Z ; teste X - 5Y < 0 (si c'est vrai, met 1 dans
l'accumulateur,
si c'est faux, met 0 dans l'accumulateur)
- [14] JMZ 18 ; si le contenu de l'accumulateur est 0, saute à
l'instruction [18], sinon va à l'instruction suivante
- [16] HLT ; stop
- [18] LOD #10 ; charge le nombre 10 dans l'accumulateur
- [20] HLT ; stop
Exercice 1-6 : Hypothetical Computer PIPPIN et code generation
- Sommer tous les nombres de 1 à n, où n est un entier positif
Exemple : n=7 <=> 1+2+3+4+5+6+7=28
- [0] LOD #0 ; charge le chiffre 0 dans l'accumulateur
- [2] STO X ; stocke le contenu de l'accumulateur dans la cellule
X (initialisation
de la cellule X à 0, la cellule X contiendra la somme)
- [4] STO Y ; stocke le contenu de l'accumulateur dans la cellule
Y (initialisation
de la cellule Y à 0, la cellule Y sera incrémentée
à chaque tour de boucle)
- [6] LOD Y ; charge le contenu de la cellule Y dans l'accumulateur
(début
de boucle)
- [8] SUB T1 ; soustrait le contenu de la cellule T1 (la cellule T1
contient la variable n) à l'accumulateur (Y - n dans
l'accumulateur)
- [10] STO T2 ; stocke le résultat dans la cellule T2 (Y -
n dans la cellule T2, T2
est une cellule temporaire)
- [12] CPL T2 ; teste Y - n < 0 (si c'est vrai, met 1 dans
l'accumulateur,
si c'est faux, met 0 dans l'accumulateur)
- [14] JMZ 28 ; si le contenu de l'accumulateur est 0, saute à
l'instruction [28] (sortie de boucle), sinon va à l'instruction
suivante
- [16] LOD #1 ; charge le chiffre 1 dans l'accumulateur
- [18] ADD Y ; ajoute le contenu de la cellule Y à
l'accumulateur (incrémentation,
Y + 1 dans l'accumulateur)
- [20] STO Y ; stocke le résultat dans la cellule Y (Y + 1
dans la
cellule Y Y, incrémentation)
- [22] ADD X ; ajoute le contenu de la cellule X à
l'accumulateur (X +
(Y+1) dans l'accumulateur, somme intermédiaire)
- [24] STO X ; stocke le résultat dans la cellule X (X +
(Y+1) dans la
cellule X, somme intermédiaire)
- [26] JMP 6 ; saute à l'instruction [6] (retour en
début de boucle)
- [28] HLT ; stop
Remarque: il existe une solution plus rapide en considérant que
pour n > 1.