__:: Codage de données ::__ |
Ce chapitre est un pré requis consacré
au codage des données et aux bases de numération. Avant de commencer, vous
devez posséder quelques notions en ce qui concerne le codage des données. Ce
n'est pas l'objet du site et nous nous contenterons donc d'un bref descriptif
et du strict nécessaire ! Pour en savoir plus, allez fouiller dans les liens.
La chose qu'il est très important de savoir faire pour ne pas être perdu sur ce
site est de toujours pouvoir faire les équivalences suivantes :
Décimal<--> Hexadécimal
<--> Binaire |
Pour rappel, nous comptons quotidiennement en
base 10, c'est à dire que nous utilisons 10 chiffres de 0 à 9 soit {0,1,2,...,9}.
Les nombres se décomposent de la manière suivante :
X(base10) =
125 |
X(base10) =1 *
10^2 + 2 * 10^1 + 5 * 10^0 |
Par extension, le même nombre en base N s'écrit:
X(baseN) = 125 |
X(baseN) =1 * N^2 + 2 * N^1 + 5 * N^0 |
Ainsi en base 2, également appelée binaire, on utilise seulement 2 chiffres soit {0,1}. En binaire, chaque digit est appelé 'bit'. On regroupe souvent les bits par groupe de 8 pour former ce que l'on nomme un 'octet'. Il est relativement simple de convertir un nombre binaire en son équivalent décimal comme le montre l'exemple suivant :
X(base2) =
1010 |
X(base10) =1 *
2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 |
X(base10) = 8
+ 0 + 2 + 0 = 10 |
Une autre base couramment utilisée dans le monde de l'informatique est l'hexadécimal ou base 16. On utilise alors 16 chiffres parmi les suivants {0,1,2,...,9,A,B,C,D,E,F}. Etant obligé de n'utiliser qu'un caractère par chiffre, on a pris les lettre de A à F pour représenter les chiffres supérieurs à 10 (en base 10)
Je sens que vous êtes un peu perdus... Nous
allons faire quelques exercices pour clarifier tout ça !
Tout d'abord, le tableau suivant vous donne les correspondances entre les trois
bases citées pour les entiers décimaux de 0 à 15. Il faut maîtriser ceux là sur
le bout des doigts !!
Décimal |
Binaire |
Hexadécimal |
00 |
0000 |
00h |
01 |
0001 |
01h |
02 |
0010 |
02h |
03 |
0011 |
03h |
04 |
0100 |
04h |
05 |
0101 |
05h |
06 |
0110 |
06h |
07 |
0111 |
07h |
08 |
1000 |
08h |
09 |
1001 |
09h |
10 |
1010 |
0Ah |
11 |
1011 |
0Bh |
12 |
1100 |
0Ch |
13 |
1101 |
0Dh |
14 |
1110 |
0Eh |
15 |
1111 |
0Fh |
Rem: De 1 à 9, on a l'égalité entre le décimal
et l'héxa !
Rem2: 1 octet = 8 bits = 2 digits en héxa
La correspondance héxa <-> binaire se fait assez facilement, il suffit de traduire chaque symbole héxa par sa valeur binaire grâce au tableau ci-dessus. Par exemple :
97FB (base16) = 1001 0111 1111 1011
(base2) |
Vous avez sûrement déjà rencontré ce terme barbare
sans comprendre de quoi il s'agit... C'est en fait le code utilisé par
l'ordinateur pour représenter les lettres. En effet, l'ordinateur ne peut
stocker dans sa mémoire que des valeurs binaires (0 ou 1) et en aucun cas des
caractères ce qui est relativement embêtant quand on veut sauvegarder un texte
par exemple.
Il a donc fallu trouver un moyen de représenter les lettres de l'alphabet ainsi
que tous les autres caractères sous un format binaire. Une fois de plus, un
tableau de correspondance a été mis en place. Il ressemble à peu près à ceci:
Caractère |
Valeur Décimale |
Valeur Héxa |
A |
65 |
41h |
B |
66 |
42h |
... |
... |
... |
a |
97 |
61h |
b |
98 |
62h |
On n'a représenté ici que 4 caractères mais tous les caractères du clavier
sont présents dans la table ASCII. Il existe ainsi une table ASCII américaine,
une table ASCII francaise (avec les accents), une table ASCII arabe...
Rem: Un caractère se code donc sur un octet.
Il n'existe donc que 255 caractères dans une table ASCII
Rem2: Un caractère occupe donc un octet en mémoire. La taille d'un fichier "texte seulement" est donc N octets où N est le nombre de lettres du fichier !
© 2001 RésoLution. Tous
droits réservés. Contactez le Webmaster. |