Post on 04-Jan-2016
description
Interprétation du contenu d ’une zone mémoire
(1) chaîne de caractères
42 6F 6E 6A 6F 75 72
Cette suite de bytes peut-elle représenter une chaîne de caractères?
Oui si chaque byte contient le code ASCII d ’un caractère!
Ici : 42 B6F O
6E N6A J
75 U72 R
Cette suite de bytes peut représenter la chaîne "BONJOUR "
42 6F 6E 9D
Cette suite de bytes peut-elle représenter une chaîne de caractères?
NON, car 9D ne correspond à aucun caractère du code ASCII standard!
(2) format binaire fixe non signé
Une suite de bytes peut toujours être interprétée comme la représentation d ’un nombre non signé en format binaire fixe.
Comment trouver le nombre décimal représenté?
En convertissant le contenu de la zone mémoire (nombre en hexadécimal) en décimal.
Exemple:
0015 représente le nombre décimal 21
8002 représente le nombre décimal 32770
(3) format binaire fixe signé
Une suite de bytes peut toujours être interprétée comme la représentation d ’un nombre signé en format binaire fixe.
Comment trouver le nombre décimal signé représenté?
a) le nombre est-il positif ou négatif?Voir le bit de signe (0 positif, 1 négatif)
b) si le nombre est 0: convertir d ’hexadécimal en décimal
si le nombre est < 0: prendre le complément à 2 avant de convertir d ’hexadécimal en décimal.
Exemple:
00 32 positif ou négatif?
0000
positif
convertir 3216 = 5010
0032 peut s ’interpréter comme la représentation en format binaire fixe de +50.
EF 90 positif ou négatif?
1110
négatif
prendre le complément à 2
F F F F- E F 9 0
1 0 6 F+ 1
1 0 7 0
convertir 107016 = 420810
EF90 peut s ’interpréter comme la représentation en format binaire fixe de -4208.
(4) décimal codé binaire étendu non-signé38 30 31 37
Cette suite de bytes peut-elle représenter un nombre en décimal codé binaire étendu non-signé?
Oui si la partie basse de chaque byte est un chiffre décimal
et si la partie haute est un chiffre hexadécimal (qui dépend du langage et du processeur) qui est le même dans chaque byte!
Le nombre décimal représenté se trouve en juxtaposant les chiffres des parties basses des bytes.
8017
Exemples:
34 30 35 21 ne représente pas un nombre en d.c.b.é. non signé car 2 3
F2 F3 F0 FC ne représente pas un nombre en d.c.b.é. non signé car C n ’est pas un chiffre décimal
04 00 05 03 représente le nombre décimal 4053 en d.c.b.étendu non signé
(5) décimal codé binaire étendu signé38 30 31 C7
Cette suite de bytes peut-elle représenter un nombre en décimal codé binaire étendu signé?
Oui si la partie basse de chaque byte est un chiffre décimal
et si la partie haute est un chiffre hexadécimal (qui dépend du langage et du processeur) qui est le même dans chaque byte
et si la partie haute du byte du dernier chiffre contient le signe C (pour +) ou D (pour -).
Le nombre décimal représenté se trouve en juxtaposant les chiffres des parties basses des bytes.
+ 8017
Exemples:
34 30 35 A1 ne représente pas un nombre en d.c.b.é. signé car A C et A D.
F1 F4 F9 CA ne représente pas un nombre en d.c.b.é. signé car A n ’est pas un chiffre décimal
04 00 05 D3 représente le nombre décimal -4053 en d.c.b.étendu signé
(6) décimal codé binaire condensé non-signé39 21 04
Cette suite de bytes peut-elle représenter un nombre en décimal codé binaire condensé non-signé?
Oui si chaque demi-byte contient un chiffre décimal.
Le nombre décimal représenté se trouve en juxtaposant les chiffres décimaux.
392 104
Exemples:
32 5C 63
12 09 87 représente le nombre décimal 120 987 en d.c.b.condensé non-signé
ne représente pas un nombre en d.c.b.condensé non-signé car C n ’est pas un chiffre décimal.
(7) décimal codé binaire condensé signé12 34 5C
Cette suite de bytes peut-elle représenter un nombre en décimal codé binaire condensé signé?
Oui si chaque demi-byte contient un chiffre décimal sauf le dernier qui doit contenir C (pour +) ou D (pour -).
Le nombre décimal représenté se trouve en décodant le signe (dernier demi-byte) avant de juxtaposer les chiffres décimaux trouvés dans les autres demi-bytes.
+ 12 345
Exemples:
32 90 C5 ne représente pas un nombre en d.c.b.condensé signé car 5 C et D , et C n ’est pas un chiffre décimal.
A3 42 5C ne représente pas un nombre en d.c.b. condensé signé car A n ’est pas un chiffre décimal
12 00 9D représente le nombre décimal -12 009 en d.c.b. condensé signé.