08.04.2014 Views

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TD1 : TYPES DE DONNÉES – CODAGE<br />

I. Caractères.<br />

I.1. Indiquer les co<strong>de</strong>s ASCII <strong>de</strong>s caractères suivants :<br />

'A', 'B', 'q', '?','*', '0' (zéro), '8', '\r', '\n', '\t'<br />

I.2. La mémoire contient les données suivantes (hexadécimal) :<br />

adresses<br />

données<br />

2A3C 43 27 65 73 74 20 65 6E<br />

2A44 20 41 53 43 49 49 2E 00<br />

Indiquer pour chaque oct<strong>et</strong> le caractère correspondant.<br />

II. Entiers.<br />

On suppose ici que les poids faibles sont situés en adresse basse.<br />

II.1. Écrire en hexadécimal puis en binaire le contenu <strong>de</strong> la mémoire pour les valeurs suivantes (entiers sur 16 bits)<br />

: 1234, 37840, 65535, -128, -1<br />

II.2. Donner les résultats <strong>de</strong>s opérations suivantes :<br />

• pour <strong>de</strong>s entiers signés codés sur 16 bits<br />

• pour <strong>de</strong>s entiers non signés codés sur 16 bits<br />

• pour <strong>de</strong>s entiers signés codés sur 32 bits<br />

1000 - 1024<br />

25000 + 30535<br />

65536 - 1<br />

II.3. Calculer les résultats <strong>de</strong>s opérations suivantes (opérateurs du C) :<br />

M<strong>et</strong>tre le résultat en binaire, hexadécimal <strong>et</strong> décimal sur 8 bits.<br />

25 & 51<br />

25 | 51<br />

25 ^ 51<br />

~25<br />

-25<br />

III. Chaînes <strong>de</strong> caractères.<br />

Indiquer le contenu mémoire obtenu avec les chaînes <strong>de</strong> caractères suivantes, selon <strong>de</strong>ux codages possibles<br />

(nombre <strong>de</strong> caractères en tête ou zéro terminal) :<br />

"TOTO"<br />

"Il fait chaud\n"<br />

"02 + 20 = 22\n"<br />

IV. Virgule flottante.<br />

Étudier les résultats obtenus avec les nombres en virgule flottante codés sur 64 bits, selon la norme IEEE 754 :<br />

e<br />

x = ± m⋅2<br />

S E' F<br />

b 63 b 62 b 52 b 51 b 0<br />

• e : exposant<br />

• m : mantisse. 1.0 ≤ m < 2.0<br />

• S : signe. 1 bit. 0 : positif, 1 : négatif<br />

• E' = e+1023. 11 bits. 1 ≤ E' ≤ 2047<br />

• F = m-1. Partie fractionnaire <strong>de</strong> la mantisse. 52 bits.<br />

Représenter le contenu mémoire correspondant aux valeurs 1.0, 2.0 <strong>et</strong> 5.0.<br />

Quelle est la valeur positive la plus p<strong>et</strong>ite possible ?<br />

Quelle est la valeur positive la plus gran<strong>de</strong> possible ?<br />

Quel est le nombre <strong>de</strong> chiffres significatifs ?<br />

V. Tableaux<br />

Soit un tableau d'entiers codés sur 16 bits <strong>et</strong> contenant les valeurs : { 2, 4, 8, 16, 32 }<br />

Représenter le contenu <strong>de</strong> la mémoire correspondant à ce tableau.<br />

Quel est le nombre d'oct<strong>et</strong>s nécessaire au stockage du tableau ?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!