IG – Chapitre 9 | L2 | Représentation des données numériques

Représentation de données numériques

Un nombre réel comporte généralement une partie entière et une partie décimale. Dans une base α un nombre X quelconque peut avoir la représentation suivante.
X = (anan-1 … a0, b1b2 … bn). Sa représentation polynômiale est X = Σni=0aiαi + Σmi=1biαi
Il existe une correspondance entre les bases 10 ; 2 ; 8 et 16.

Base 10 Base 2 Base 8 Base 16
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Pour convertir un nombre d’une base donnée à une autre on convertit la partie entière dans la base voulue et pour la partie décimale on convertit la partie fractionnelle dans la base voulue.


Conversion de la partie entière

Conversion de la base 10 à une base β

Il est possible de passer d’un nombre décimal à un nombre en base β en utilisant la division successive par β.
On divise successivement le nombre décimal par β en gardant les restes, on s’arrête lorsque le quotient devient nul. Le résultat est obtenu en prenant l’ordre inverse des restes.

Exemples :

Conversion d’un nombre en base 2.
(18)10 = (…)2

18 :2 = 9 et reste = 0
9 :2 = 4 et reste = 1
4 :2 = 2 et reste = 0
2 :2 = 1 et reste = 0
1 :2 = 0 et reste = 1

(18)10 = (10010)2

Conversion d’un nombre en base 8
(207)10 = (…)8

207 :8 = 25 et reste = 7
25 :8 = 3 et reste = 1
3 :8 = 0 et reste = 3

(207)10 = (317)8


Exercice :

Effectuer les conversions suivantes :

(3479)10 = (…)16 ; (145)10 = (…)2 ; (3007)10 = (…)16 ; (452)10 = (…)8

Conversion de la base β à la base 10

De façon inverse il est facile de passer d’un nombre β d’un nombre en base 10 pour multiplication successive de puissance de β : on multiplie chaque  élément du nombre en base β élevé à une  puissance. Les puissances sont comptées à partir de 0 en partant de la droite vers la gauche, puis on effectue la somme des résultats obtenus :

  • Trouver la position de chaque chiffre constituant le nombre
  • On multiplie chaque chiffre par β à la puissance de sa position
  • Faire la somme des résultats obtenus.

Exemple :

1) (1100101)2 = (…)10

2.26 + 1.25 + 0.24 + 0.23 + 1.22 + 0.21 + 1.20 = 64 + 32 + 0 + 0 + 4 + 0 + 1 = (101)10

2) (203)8 = (…)10

2.8² + 0.81 + 3.80 = 128 + 3 = (131)10

3) (76)16 = (…)10

7.161 + 6.160 = 112 + 6 = (118)10


Exercice :

Effectuer les conversion suivantes :

  1. (145)8 = (…)10
  2. (452)8 = (…)10 = (…)16
  3. (546)16 = (…)10 = (…)8 = (…)2
  4. (458)16 = (…)10 = (…)2
  5. (DC48)16 = (…)10 = (…)8
  6. (100011)2 = (…)10 = (…)8
  7. (111001011)2 = (…)10 = (…)16

Conversion de la partie décimale

Une partie décimale y s’exprime sur la forme suivante
y=(0.b1b2…bn) = Σni=1biβ-i = b1+ b2+ … + bnn

En multipliant y par β on obtient une partie entière et une partie décimale
βy = b1 + b21 + … + bmm-1

Formulons l’algorithme sous la forme suivante
d0 = y
d1 = D(βd0) et b1 = E(βd0)                            D : Partie décimale
d2 = D(βd1) et b2 = E(βd1)                            E : Partie entière et β :la base
.
.
.
.

La conversion de la partie décimale peut générer un nombre qui n’a pas une représentation fixe.

Exemple : (0.175)10 = (…)2
d0 = 0.175
2d0 = 0.35
d1 = 0.35 et b1 = 0
2d1 = 0.7
d2 = 0.7 et b2 = 0
2d2 = 1.4
d3 = 0.4 et b3 = 1
2d3 = 0.8
d4 = 0.8 et b4
2d4 = 1.6
d5 = 0.6 et b5 = 1
2d5 = 1.2
d6 = 0.2 et b6 = 1
2d6 = 0.4
d7 = 0.4 et b7 = 0
réponse : (0.175)10 = (0.0010110…)2

Exercice :

Effectuer les conversions suivantes :

  1. (250.55)10 = (…)2 = (…)8 = (…)16
  2. (1001001.011)2 = (…)10 = (…)13
  3. (1032.2)8 = (…)10 = (…)2 = (…)16
  4. (45EA.AB)16 = (…)10 = (…)8

Conversion de 2↔8 et 2↔16

Conversion de 2↔8

Etant donné un nombre en base 2 la conversion en base 8 se fait en subdivisant la représentation binaire en groupe de 3 bits en remplaçant chaque groupe par son chiffre correspondant en base 8. La subdivision procède du point décimal vers la gauche pour la partie entière et vers la droite pour la partie décimale. Dans chaque cas on peut avoir à compléter le dernier bit par zéro pour avoir 3 bits.

Exemple :

(11 001 011 . 111 001 11)2 = (313.716)8

Pour passer de la base 8 à la base 2 on remplace chaque chiffre par sa représentation binaire.

Exemple :

(4375.4012)8 = (1000 011 111 101 . 100 000 001 010)2


Conversion de 2↔16

Chaque symbole de l’alphabet hexadécimal correspond à un nombre de 4 bits. Ainsi on peut passer d’un nombre binaire à un nombre hexadécimal en subdivisant  ces nombres binaires en groupe de 4kbits. Pour la partie entière on procède de la droite vers la gauche à partir du point décimal et pour la partie décimale on procède de la gauche vers la droite. Dans chaque  cas on peut avoir à compléter le dernier quartet de bit par les 0 pour avoir 4 bits.

Exemple :

(100 0111 . 1100 0011 0)2 = (47.C30)16

Pour passer de la base 16 à la base 2 il suffit de convertir tout simplement chaque chiffre qui compose le nombre hexadécimal en binaire.

Exemple :

(13C)16 = (0001 0011 1100)2