Qu'entends tu par "formule hexadécimale" ?
Depuis Von Neumann (1945), on sait qu'on peut mettre en mémoire vive ou mémoire de masse d'un ordinateur, des informations de nature différente, essentiellement des données et des instructions, qu'on ne sait pas distinguer les unes des autres. Il faut donc des conventions, appliquées de manière implicite par les programmes (et les compilateurs, en fonction du jeu d'instructions liées au processeur) et le système de gestion des fichiers (par exemple, un programme source ou un fichier de données sera en Ascii, un exécutable sera en binaire, une date dans un SGBD sera codée selon des règles propres au constructeur).
--------------------------------------------------------------------------
Le décimal :
C'est la base classique pour les nombres que nous utilisons au quotidien, avec ou sans ordinateur.
--------------------------------------------------------------------------
Le binaire :
C'est la base qu'utilisent les ordinateurs, parce que faisant appel à des composants électroniques capables de mémoriser des données et d'effectuer des calculs sur ces données.
--------------------------------------------------------------------------
L'hexadécimal :
On peut considérer qu'il ne s'agit que d'une représentation compacte du binaire. Au fil des temps, les gens du monde informatique ont appris à lire couramment l'hexa, et on a introduit cette forme de représentation dans les langages de programmation. Le binaire n'est manipulé qu'au travers de fonctions de masques (ET,OU,décalages, ...).
--------------------------------------------------------------------------
L'octet :
C'est le groupement de 8 bits, ou 2 chiffres en hexa. Les machines sont généralement "à octets" aptes à stocker des caractères, mais il a existé des machines utilisant des paquets de
6 bits (un mot "long" sur 36 bits, ou 6 caractères). Un jeu de 256 caractères n'est d'ailleurs pas toujours suffisant de nos jours.
--------------------------------------------------------------------------
Les données peuvent être :
- des caractères, sur un octet, en code Ascii, Ebcdic, ...
- des entiers, généralement sur 16 ou 32 bits, signés ou non, nécessitant une convention pour la présence ou non de ce signe,
- des nombres réels, sur 32, 64, 128 bits, avec exposant sur 8 à 11 bits (à vérifier !),
- des nombres en "décimal zoné" ou "décimal packé", dont la taille dépend des déclarations du programme (Cobol).
--------------------------------------------------------------------------
Les instructions peuvent être :
- sur 2, 3, 4, ... octets, la longueur de l'instruction dépendant du code instruction (le 1er octet), la correspondance dépendant du type de processeur.
--------------------------------------------------------------------------
A une époque ancienne, les données et les instructions pouvaient se suivre dans un même bout de programme, notamment en assembleur. Aujourd'hui, les deux types d'informations sont séparés, ce qui permet de protéger le code, ou de le rendre partageable entre plusieurs traitements, chacun disposant de ses propres données.
--------------------------------------------------------------------------
Il résulte de tout celà que vouloir transformer de l'hexa en quelquechose de compréhensible nécessite de prendre en considération le type de contenu.
Deux types d'applications effectuent des conversions :
- le dump, qui donne une image en hexa, avec séparation de l'information tous les 2, 4, 8 chiffres hexa, et souvent accompagnée d'une interprétation en mode caractère (si éditable en Ascii, Ebcdic, ...),
- le "désassembleur" qui pour chaque intruction, donne le code opération, et les adresses des opérandes (on ne peut évidemment pas retrouver le nom symbolique des variables du programme initial).
--------------------------------------------------------------------------
Si ta demande ne concerne que la conversion de nombres exprimés en hexa vers des entiers décimaux "compréhensibles", tu oublies tout ce qui est dit plus haut !!!