Nous avons tous appris à compter sur nos dix doigts. [Le terme ``digit'' veut dire ``doigt'' en latin]. La plupart des nombres que nous rencontrons sont représentés à l'aide
de la base 10. Les codes postaux anglais utilisent des lettres et
des chiffres de manière à être représentés en base 36 (26 lettres
et 10 chiffres). La base la plus simple est la base 2 qui ne connaît
que les chiffres 0 et 1. Un numéro de téléphone constitué de 7 chiffres
permet
combinaisons.
Un code postal à 4 caractères en base 36 permet
combinaisons
tandis qu'un nombre binaire de 8 chiffres n'autorise que
ou 256 combinaisons.
Etant donné que les ordinateurs fonctionnent en base 2 et qu'il est
fastidieux de faire des conversions base 2
base
10, les informaticiens en sont venus à utiliser les bases 8 (octale)
et 16 (hexadécimale). Les nombres hexadécimaux contiennent des chiffres
de 0 à 9 et des lettres de A à F. Le terme hexadécimal est souvent
réduit à hex. La base octale n'utilise que des chiffres de 0 à 7.
Considérez un nombre binaire à 4 chiffres (4 digits):
il y a = 16 combinaisons possibles. En base hexadécimale,
il n'y a qu'une combinaison pour ce même nombre. Par ailleurs, un
nombre binaire à 3 chiffres (
= 8) ne présente plus qu'une
combinaison en base octale. Comme indiqué dans les tableaux 1
et 2, un nombre binaire
peut être représenté en octal ou hex de manière simple.
Un nombre binaire comme 01001011 peut être représenté en hex par 4B
et en octal comme 113 en le décomposant en 2 groupes de 4 chiffres
pour le cas de la base hex et en 3 groupes de 3 chiffres pour la base
octale.
Pour l'administrateur et le programmeur, il y a souvent une ambiguïté à déterminer si un nombre est représenté en base hexadécimale, décimale ou octale. Par exemple, le nombre hex 56 s'exprime comme 01010110, le nombre octal 56 est 101110 et le nombre décimal 56 se représente 111000 (après de fastidieuses conversions). Afin de permettre la distinction, les nombres hex sont préfixés avec ``0x'', les nombres octaux sont préfixés avec ``0'' et si le premier nombre commence par un nombre de 1 à 9, il s'agit d'un nombre décimal dans la plupart des cas. Nous écrirons donc 0x56 en hex, 056 en octal et 56 en décimal. Une autre représentation consiste à ajouter la lettre H, D, O ou B (ou h, d, o ou b) au nombre pour indiquer sa base.
UNIX fait un usage fréquent des nombres binaires à 8, 16 ou 32 chiffres en les représentant souvent sous forme de nombres hex à 2, 4 ou 8 chiffres. Vous vous habituerez à voir des nombres comme 0xffff (ou FFFFh) qui représente 65535, exprimé en binaire comme 1111111111111111.