Nombres entiers naturels
La représentation des nombres au sein d'un ordinateur repose sur le principe de l'électronique binaire : les composants électroniques exploitent et élaborent des tensions binaires. Une telle tension binaire ne peut prendre que deux valeurs clairement distinctes, historiquement, 0 V et 5 V. Aujourd'hui, pour des questions essentiellement de consommations électriques, les niveaux de tensions ont baissé, par exemple, 0 V et 1,8 V mais quoi qu'il en soit, on représente généralement la tension basse, souvent 0 V par un « 0 » logique et la tension haute, par exemple, 1,8 V par un « 1 » logique. Dans la suite, nous ne ferons référence qu'aux valeurs logiques des tensions sans préciser les niveaux de tension en Volt auxquels ils correspondent. Il s'agit donc d'un premier niveau d'abstraction qu'il importe de s'approprier.
La question qui se pose d'emblée : comment représenter un nombre quelconque avec uniquement deux niveaux logiques. La réponse réside dans la numération de base 2. Tout comme les nombres dans la vie courante sont représentés en base 10, l'ordinateur représente les nombres quelconques comme combinaison des puissances de 2. Dans la vie courante, en base 10, les nombres sont représentés comme somme pondérée des puissances de 10. Les poids prennent 10 valeurs possibles, les chiffres arabes de 0 à 9. Ainsi, par exemple :
En base 2, ce même nombre est représenté comme somme pondérée des puissances de 2 avec comme seuls poids possibles 0 et 1. Ainsi : soit,
Cette dernière valeur qui représente 2014 en base 2 est obtenue en représentant les poids (0 ou 1) des puissances de 2 selon le tableau qui suit :
En l'occurrence, il faut 11 bits (binary units) pour représenter 2014. On vérifiera aisément que n bits permettent de représenter selon ce principe les entiers naturels compris entre 0 et . Classiquement, les nombres codés en 8 bits permettent de représenter les entiers naturels entre 0 et 255.
La conversion des représentations en base 10 vers la base 2 ou réciproquement n'offre pas beaucoup d'intérêt opérationnel. Quand il s'agit de représenter des nombres sur un nombre important de bits (les processeurs modernes possèdent une architecture 64 bits), on opte pour la représentation hexadécimale, c'est-à-dire le système de numération en base 16. La raison en est que 16 est une puissance entière de 2, savoir . Dans la représentation hexadécimale, le nombre est écrit comme somme pondérée des puissances de 16. Il faut donc 16 symboles pour représenter les poids dans la somme pondérée. On choisit évidemment les 10 symboles classiques de 0 à 9 mais il faut compléter à 16 symboles. On a choisi les lettres de l'alphabet latin, A à F pour représenter les valeurs décimales respectivement 10 à 15 avec les correspondances suivantes :
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Pour comprendre tout l'intérêt de la représentation hexadécimale, il est efficace de traiter quelques exemples avec d'abord la recette opérationnelle que nous expliquerons dans un second temps. Nous repartons de la valeur 2014 (en base 10) dont nous possédons la représentation binaire, soit :
La recette consiste à grouper le nombre représenté en binaire par groupe de 4 digits à partir de la gauche. Nous matérialisons par des espaces les groupes de 4 digits pour obtenir :
Comme 2014 se code sur 11 bits, si nous voulons avoir trois groupes de 4 digits, il faut ajouter un douzième digit à 0 pour obtenir :
Ensuite chaque groupe de 4 digits est converti en hexadécimal indépendamment comme s'il s'agissait d'un nombre compris entre 0 et 15 (en base 10). Concrètement, on manipule uniquement les 4 premières puissances de 2, soit 1, 2, 4 et 8. Ainsi
Pour bien comprendre, le groupe de 4 digits à l'extrême droite 1110 est converti en hexadécimal par la somme 8+4+2+0=14 en base 10 soit E en hexadécimal. Le groupe de 4 intermédiaire donne 8+4+0+1=13 en base 10, soit D en hexadécimal et enfin le groupe de gauche donne 0+4+2+1=7 en base 10 et partant, 7 aussi en hexadécimal.
Concrètement, la conversion de grands nombres de binaire en hexadécimal ou réciproquement se limite donc en des conversions de nombres de 0 à 15 en base 10 par le groupement en groupes de 4 digits (en commençant par la droite). La magie de la simplification réside dans le fait que
Si nous reprenons notre exemple de 2014 en base 10, nous avons en binaire que nous pouvons expliciter comme somme pondérée des puissances de 2 . Ainsi :
où nous avons pris soin de matérialiser des espaces pour mettre en évidence les trois groupes de 4 digits. Dans le groupe de gauche, nous pouvons dans la somme pondérée des puissances de 2, mettre en facteur et dans le groupe intermédiaire, nous pouvons mettre en facteur, ce qui donne :
et finalement : soit