You are on page 1of 11

Conversion et changement de base

Les conversions de nombre intervienent pour passer d'un systme de numration


vers un autre.

Conversion d'un nombre de base quelconque en


nombre dcimal
En exposant les principes des systmes de numration de position, nous avons dj
vu comment convertir les nombres de base 8, base 2 et base 16 en nombres
dcimaux.

Conversion d'un nombre dcimal en nombre binaire


Pour expliquer ce type de conversion, on peut revenir sur le systme dcimal.
Si nous divisons le nombre (543)10 par 10, nous obtenons comme quotient 54 et 3
comme reste. Cela signifie que ce nombre quivaut :
(54 x 10) + 3
Le reste 3 est le chiffre indiquant le nombre d'units.
En redivisant ce quotient (54) par 10, nous obtenons 5 comme deuxime quotient et
4 comme reste. Ce reste donne le deuxime chiffre du nombre, donc celui des
dizaines.
Enfin, si l'on divise ce deuxime quotient par 10, nous obtenons 0 et il restera 5 qui
reprsentera le chiffre des centaines.

Rsumer du principe de conversion


En divisant successivement un nombre par la base (10) et en ne conservant que
les restes, on a russi exprimer le nombre par des chiffres infrieurs de 10. Mais
attention, il faut lire les restes de bas en haut.

Conversion binaire

Maintenant si nous divisons un nombre dcimal par 2, le quotient indique le nombre


de fois que 2 est contenu dans ce nombre et le reste indique le chiffre des units
dans l'expression du nombre binaire.
Soit N le nombre, Q1 le quotient et R1 le reste, nous avons :
N = (Q1 x 2) + (R1 x 1)
N = (Q1 x 21) + (R1 x 20)
Exemple :

soit :
N = (22 x 2) + (0 x 1) = 44.

Pour obtenir l'expression binaire d'un nombre exprim en dcimal, il suffit dediviser
successivement ce nombre par 2 jusqu' ce que le quotient obtenu soit gal 0.
Comme pour la conversion dans le systme dcimal les restes de ces divisions lus de
bas en haut reprsentent le nombre binaire.

(44)10 = (101100)2.

Relation entre les nombres binaires et les nombres


octaux

Exprimons (47)10 dans le systme octal et le systme binaire. Nous obtenons :

Nous pouvons remarquer qu'aprs 3 divisions en binaire nous avons le mme


quotient qu'aprs une seule en octal. De plus le premier reste en octal obtenu peut
tre mis en relation directe avec les trois premiers restes en binaire :
(111)2 = 1 x 22 + 1 x 21 + 1 x 20
(111)2 = 1 x 4 + 1 x 2 + 1 x 1
(111)2 = (7)8
et il en est de mme pour le caractre octal suivant :
(101)2 = 1 x 22 + 0 x 21 + 1 x 20
(101)2 = 1 x 4 + 0 x 2 + 1 x 1
(101)2 = (5)8

Cette proprit d'quivalence entre chaque chiffre octal et chaque groupe de 3


chiffres binaires permet de passer facilement d'un systme base 8 un systme
base 2 et vice versa.

Exemple de conversion binaire octal et octal binaire

Relation entre les nombres binaires et les nombres


hexadcimaux

La proprit d'quivalence que nous venons de voir entre le binaire et l'octal existe
entre l'hexadcimal et le binaire.
La seule diffrence est qu'il faut exprimer chaque caractre hexadcimal l'aide de 4
informations binaires.

Nombre virgule flottante


Pour reprsenter un nombre virgule dans une machine informatique ou un systme
lectronique, il a t ncessaire de trouver une criture des nombres compatible
avec la taille mmoire qu'on lui accorde. On a donc privilgi la notation scientifique
et l'criture en virgule flottante.

Reprsentation des nombres virgule flottante


Nous dsirons stocker des donnes dans une machine. Ainsi le nombre 9,750 se
trouvera mmoris sous la forme suivante :
100111 .

Toutefois cette expression binaire ne suffit pas dfinir totalement notre donne car
il n'y a aucune indication sur la valeur du poids binaire affect aux diffrents bits,
d'o la notion de virgule suivante :
1001,11 .

En utilisant cette notion de virgule, notre nombre peut s'crire de la manire ci-aprs
:
N = 1001,11 x 20
N = 100,111 x 21
N = 10,0111 x 22
N = 1,00111 x 23
N = 0,100111 x 24

La dernire expression prsente l'avantage de reprsenter la grandeur par un


nombre infrieur 1 multipli par une puissance de 2.
L'exposant 4 est bien entendu reprsentatif de la position de la virgule.
Donc pour dfinir totalement notre information (9,750) il faudra dans ce systme de
reprsentation deux termes :

Le terme 100111 appel Mantisse (M),


le terme 100 appel Exposant (E).

Si dans une machine les informations sont reprsentes en virgule flottante, elles
se prsenteront de la manire suivante :
100111100.
100111 est la Mantisse et correspond notre nombre N de dpart (1001,11) mais
sans "crire ou indiquer" la virgule,
100 est l'Exposant (100 en binaire vaut 4 en dcimal) et donne la position de la

virgule.
On retrouve ainsi notre nombre :
N = 100111 x 24
N = 1001,11

Il vient que, lors de la conception du programme de traitement des nombres, il


faudra dterminer la plage de reprsentation des nombres et la prcision dsire. On
conviendra alors du nombre de bits pour reprsenter la Mantisse qui donnera la
prcision sur les nombres, et du nombre de bits pour l'Exposant qui procurera
l'intervalle des nombres reprsentables.

Nombre virgule fixe


La reprsentation de nombre en virgule flottante n'est pas la seule imaginable.
Expliquons la reprsentation de nombre en virgule fixe par un exemple.

Reprsentation des nombres virgule fixe


Soit (25,75)10 = (11001,110)2
La position de la virgule est fixe arbitrairement la 4me case vers la gauche. La
position de la virgule n'est pas visualise.
La case la plus droite reprsente le poids 20 : ce qui est videmment faux.

Cette reprsentation suppose la multiplication implicite de ce nombre par 2 -3


Le terme -3 est reprsentatif du positionnement fixe de la virgule. Il devra
imprativement tre mmoris.

Comparaison des deux reprsentations (virgule fixe et


virgule flottante)
Nous considrons avoir mmoris le terme d'lvation la puissance -3.
Si on travaille sur 10 positions, le nombre le plus lev que l'on pourra crire sera
gal :
en virgule fixe

en virgule flottante

Par ailleurs, si nous voulons crire un nombre infrieur 1, par exemple 47/64
(0,734375) nous aurons :
7 chiffres significatifs en virgule flottante,
3 chiffres significatifs en virgule fixe.
en virgule fixe :
0000000101
en virgule flottante :
1011110000
Si l'on cherche l'quivalent dcimal :
en virgule fixe :
101 x 2-3 = 1/2 + 1/8 = 40/64
en virgule flottante :
0,1011110 x 20 = (1/2 + 1/8 + 1/16 + 1/32 + 1/64 ) x 2 0 = 47/64
On s'aperoit que la reprsentation en virgule fixe apporte une erreur qui peut, dans
certains cas, ne pas tre ngligeable.

Nombres signs

Comment reprsenter des nombres ngatifs ou positif dans une machine


informatique.

Reprsentation des nombres signs par leur valeur


absolue et leur signe
C'est naturellement la premire reprsentation qui vient l'esprit. Il suffit d'affecter
un bit pour le signe et d'attribuer par convention la valeur 0 au signe + et lavaleur
1 au signe -.
Ainsi le nombre +32 s'crira dans le systme binaire :

et le nombre -32 :

Autres exemples :
Le nombre + 9,750 s'crit :

et - 9,750 :

Reprsentation dans le code du complment restreint


Nous allons d'abord dfinir ce qu'est le complment restreint. Pour cela il faut tenir
compte du format de la donne et de la base dans laquelle elle est exprime.
Exemples :
Soit l'information (453)10 ; son format est de 3 caractres et la base utilis est 10.
La valeur maximale que l'on peut exprimer dans ce format est :
999
La diffrence qui existe entre cette valeur maximale et 453 s'appelle lecomplment
restreint.

On le nomme aussi complment 9 car la base utilise est 10.

Cette notion de complment restreint se retrouve avec n'importe quelle base utilise
et plus particulirement en binaire :
complment restreint de (1001)2

complment restreint de (F0A8)16

Si nous reprenons l'exemple du binaire, il n'est mme pas ncessaire d'excuter une
opration de soustraction pour obtenir ce complment restreint on s'aperoit qu'il
suffit de transformer tous les 1 en 0 et vice versa pour l'obtenir.
100110(2) pour complment restreint : 011001
Certaines machines utilisent ce code pour la reprsentation des nombres signs. Il
est alors appel code du complment 1.
Ainsi le nombre + 25 sera reprsent de la manire suivante :

et - 25 :

CR = Complment Restreint.

Reprsentation dans le code du complment vrai


Comme pour le complment restreint, nous allons dfinir ce qu'est le complment
vrai d'un nombre.
Le complment vrai d'un nombre est la valeur qu'il faut ajouter ce nombre pour
obtenir la valeur maximale + 1 que l'on peut exprimer (en tenant compte du format
et de la base utiliss).
Exemples :
Calcul du complment vrai de (453)10
Valeur maximale ===> 999
Valeur maximale + 1 ===>
Complment vrai :

1 000

Calcul du complment vrai de (8AF)16


Valeur maximale ===> FFF
Valeur maximale + 1 ===> 1 000

Complment vrai :

On peut aussi obtenir le complment vrai d'un nombre en calculant d'abord son
complment restreint et en ajoutant ensuite 1.
Exemples :

Un exemple en binaire :

Restons en binaire (base 2) et appliquons une autre mthode pour traduire un


nombre en complment 2.
(le complment vrai est galement appel complment 2)
On part du bit de poids le plus faible (bit de droite) :
===> si c'est un zro, on recopie 0 jusqu'au premier 1 rencontr,
===> si c' est un "1", on garde ce premier 1.
Ensuite on inverse tous les bits aprs le premier 1 rencontr partir de la droite.
Attention si le bit le plus droite est un 1, c'est aussi le premier 1 rencontr
!

Quelques exemples
Exemple 1 :
(42)10 = (101010)2 ===> le bit le plus droite est un 0
0 ==> 0
1 ==> 1

on conserve le zro
premier 1 rencontr est conserv

0 ==> 1
1 ==> 0

inversion des bits aprs le premier 1 rencontr

0 ==> 1
1 ==> 0
Le nombre (42)10 = (101010)2 s'crit en complment vrai :
010110 .

En utilisant la mthode du complment restreint + 1 :

Exemple 2 :
(59)10 = (111011)2 ===> le bit le plus droite est un 1
1 ==> 1 premier 1 rencontr est conserv
1 ==> 0 inversion des bits aprs le premier 1 rencontr
0 ==> 1
1 ==> 0
1 ==> 0
1 ==> 0
Le nombre (59)10 = (111011)2 s'crit en complment vrai :
000101 .
En utilisant la mthode du complment restreint + 1 :

Complment vrai = complment restreint + 1

Rsum pour l'arithmtique binaire


Lorsque l'on veut reprsenter un nombre avec son signe (nombre sign) la solution
la plus simple consiste rajouter un bit sur la gauche de la valeur absolue de ce
nombre.
Par convention ce bit sera 0 pour reprsenter un nombre positif
et 1 pour reprsenter un nombre ngatif.
0 1 1 0 signifie + 110 ===> (+ 6) 10
1 1 1 0 signifie - 110 ===> (- 6)10
Ce systme intressant par sa simplicit a pour inconvnient de prsenter deux
zros.
0000 ==> + 0
1000 ==> - 0.

Pour faciliter le travail des machines informatiques et pour des circuits lectroniques
simplifis on reprsente un nombre sign en complment 1 (complment restreint)
ou en complment 2 (complment vrai = complment restreint +1).

La reprsentation en complment 2 (la plus rpandu) pour avantage de ne


prsenter qu'un seul zro.
Le bit le plus gauche sera reprsentatif du signe :
0 pour un nombre positif
1 pour un nombre ngatif.
Le tableau suivant donne un aperu des diffrentes reprsentations pour un nombre
compris entre - 128 et + 127.

Tableaux reprsentant des nombres signs


Exemple sur un octet :

You might also like