A la demande générale (si, si!), quelques notions sur l'hexadécimal (pardon d'enfoncer des portes ouvertes pour ceux, la grande majorité je suppose, qui possèdent ces notions).
La notation hexadécimale n'est qu'un façon de représenter le binaire, elle n'a aucune existence physique. Sachant que les bits élémentaires sont regroupés en mémoire par octets (8 bits), c'est une manière commode de les représenter, par paquets de 4 (2 'quartets' par octet).
Chaque quartet de 4 bits peut prendre une valeur entre 0 et 15, cette valeur sera représentée par les nombres 0 à 9 (valeurs de 0 à 9) et les lettres A à F (valeurs de 10 à 15).
C'est donc une arithmétique en base 16.
Dans un octet, en comptant à partir de la droite, le poids de chaque bit (0 ou 1) est double du précédent. Dans l'octet, le poids du premier quartet est 16 fois le poids du second
On compte successivement:
Dans un quartet on peut donc compter de 0 à 15, dans un octet on peut donc compter de 0 à 16*15+15 = 255 (=11111111 en binaire, soit 'FF' en hexa)
La représentation en décimal est une valeur entière, en hexadécimal c'est une chaîne (string) ascii.
A partir de là on peut imaginer l'arithmétique hexadécimale:
- l'addition: 1+1= 2, 4+5= 9, 4+6= A, 5+A=F, A+B=15, utilisée par exemple pour additionner une adresse dans un fichier et un décalage (offset) pour obtenir une seconde adresse.
- la soustraction: A-4=6, E-3=B
- la multiplication: 2x2=4, 2x4=8, 2x5=A, 2x7=E, 2xA=14, 2xC=18, 2xF=1E
- la division... je n'en vois pas trop l'usage.
Cette représentation en hexadécimal est utilisée pour examiner le contenu des mémoires (vive ou fixe), en particulier le contenu des fichiers binaires.
Il faut pour ça disposer d'un programme de 'dump' (vidage) qui affiche le contenu du fichier sous forme hexadécimale, par exemple 16 octets par ligne avec l'adresse correspondante en tête de ligne et la traduction en caractères équivalents Ascii à droite.
Un très bon programme simple et gratuit, qui fait aussi éditeur hexa: FrHed:
http://frhed.sourceforge.net/