__:: 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

Les bases de numération

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)

Conversion

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)

 

Le codage ASCII

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 !

 

[ Précédent | Suivant ]

© 2001 RésoLution. Tous droits réservés. Contactez le Webmaster.