Вы находитесь на странице: 1из 3

Conversion des nombres

Pour convertir un nombre hexadécimal en binaire : ( conversion de 0000 007F )

Méthode : 1. Convertir le nombre hexadécimal en décimal


2. Convertir ce nombre décimal en binaire

Il faut savoir que chaque "élément" du nombre hexadécimal correspond à 4 bits en


binaire. En effet, les différentes valeurs possibles pour un élément d'un nombre hexa sont :
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Ce qui fait donc 16 sortes d'éléments. Or, en binaire, pour
représenter 16 nombres, nous avons besoin de 4 bits ( 2^4 = 16 ).

Donc, dans l'exemple, 007F ( pour être exact, 0000 007F car nous sommes en 32 bits )
vaut donc 0 x 16^3 + 0 x 16^2 + 7 x 16^1 + 15 x 16^0 ( A = 10, B = 11, C = 12, D = 13, E =
14 et F = 15 ). 007F vaut donc 7 x 16 + 15 = 127.

127 = 1 x 2^0 + 1 x 2^1 + 1 x 2^2 + 1 x 2^3 + 1 x 2^4 + 1 x 2^5 + 1 x 2^6 + 0 x 2^7 +


... + 0 x 2^31
= 0…01111111.

Convertir un nombre binaire en complément à 2 :

Cette méthode permet, si nous travaillons en n bits, de représenter des nombres allant
de -2^(n-1) à 2^(n-1)-1 ( cf. Fig 0.5 du chapitre 0).
Le chiffre le plus à droite du nombre binaire indique le signe du nombre en
complément à deux. En effet, 1 correspond au signe – et 0 au signe +.
La valeur du nombre en complément à deux est alors donnée par les n-1 autres bits.

Convertir un nombre binaire en virgule flottante : (conversion de 127 en float )

Pour convertir un nombre binaire en nombre à virgule flottante, il faut savoir à quoi
servent chacun des chiffre du nombre binaire. (voir slide 68 du ch. 0.0).

Explications de la formule slide 68 :


- Le chiffre ( 1 ou 0 ) le plus à gauche du nombre binaire va donner le signe du nombre à
virgule flottante (float). En effet, s'il s'agit d'un 0 : (-1)^0 = 1 => le float sera positif. Et
s'il s'agit d'un 1 : (-1)^1 = -1 => le float sera négatif.
- Les 8 chiffres les plus à droites vont donner la valeur de l'exposant du float.
- Tous les chiffres du milieu forment ce qu’on appelle la mantisse.

Donc, l'astuce de la conversion est qu'un nombre binaire doit être décomposé en trois
nombres pour le convertir en float : un de 1 chiffre, un de 8 chiffres et un de n - 8 - 1 chiffres (
n étant le nombres de bits sur lequel on travail ).

Pour revenir à l'exemple, notre nombre étant 127, en 32 bits et en binaire, il s'écrit :
0 00000000000000000000000 01111111.
Ce qui nous donne en float ( selon la formule ) :
(-1)^0 x 1,00000000000000000000000 x 2^( 01111111 - 127 ) = 1 x 1,0 x 2^0 = 1,0.

Attention! : si l'exposant du 2 dans la formule = 0 ( càd si les 8 derniers chiffres du


nombre binaire sont nuls ) alors la formule devient :

(-1)^0 x 0,00000000000000000000000 x 2^( -126 ) = 1 x 1,0 x 2^0 = 1,0.

Lionel Mottard
0.5.6. :

Pour convertir un nombre hexadécimale en binaire, il faut savoir que chaque "élément" du
nombre hexadécimal correspond à 4 bits en binaire. En effet, les différentes valeurs possibles
pour un élément d'un nombre hexa sont : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Ce qui fait donc
16 sortes d'éléments. Or, en binaire, pour représenter 16 nombres, nous avons besoin de 4 bits
( 2^4 = 16 ).

Donc, dans l'exemple, 007F ( pour être exact, 0000 007F car nous sommes en 32 bits ) vaut
donc 0 x 16^3 + 0 x 16^2 + 7 x 16^1 + 15 x 16^0 ( C'est ici que se trouve l'erreur de Jon, en
effet, F vaut 15 et non 16 !! Pour vérification : de A = 10, B = 11, C = 12, D = 13, E = 14 et F
= 15 ). 007F vaut donc 7 x 16 + 15 = 127.

Il faut ensuite convertir 127 en complément à 2. Cette méthode permet, si nous travaillons
en n bits, de représenter des nombres allant de -2^(n-1) à 2^(n-1)-1 ( autre erreur de Jon je
pense ) ( cf. Fig 0.5 pour vérifications). Pour revenir à l'exemple, nous devons convertir 127
en binaire.

127 = 1 x 2^0 + 1 x 2^1 + 1 x 2^2 + 1 x 2^3 + 1 x 2^4 + 1 x 2^5 + 1 x 2^6 + 0 x 2^7 + ... + 0
x 2^31

Ce qui donne comme nombre binaire 0...01111111. En complément à deux, cela donne 127 (
car nous travaillons en 32 bits ) ( cf. Fig 0.5 )

0.5.7

Pour convertir un nombre binaire en nombre à virgule flottante, il faut savoir à quoi servent
chacun des chiffre du nombre binaire. (voir slide 68 du ch. 0.0).

Explications de la formule slide 68 :

Le chiffre ( 1 ou 0 ) le plus à gauche du nombre binaire va donner le signe du nombre à


virgule flottante (float). En effet, s'il s'agit d'un 0 : (-1)^0 = 1 => le float sera positif. Et s'il
s'agit d'un 1 : (-1)^1 = -1 => le float sera négatif.

Les 8 chiffres les plus à droites vont donner la valeur de l'exposant du float.

Tous les chiffres entre forment la mantisse.

Donc, l'astuce de la conversion est qu'un nombre binaire doit être décomposé en trois
nombres pour le convertir en float : un de 1 chiffre, un de 8 chiffres et un de n - 8 - 1 chiffres (
n étant le nombres de bits sur lequel on travail.

Pour revenir à l'exemple, notre nombre étant 127, en 32 bits et en binaire, il s'écrit :

0 00000000000000000000000 01111111. Ce qui nous donne en float ( selon la formule ) :

(-1)^0 x 1,00000000000000000000000 x 2^( 01111111 - 127 ) = 1 x 1,0 x 2^0 = 1,0.

Attention! : si l'exposant du 2 dans la formule = 0 ( càd si les 8 derniers chiffres du nombre


binaire sont nuls ) alors la formule devient :
(-1)^0 x 0,00000000000000000000000 x 2^( -126 ) = 1 x 1,0 x 2^0 = 1,0.

0.5.5

A mon avis, en regardant les Fig 0.4 et 0.5, pour passer d’une représentation binaire à
décalage à une représentation en complément à 2, il suffit d’inverser le signe de chaque
nombre et de lui soustraire 2^n-1. ( à vérifier !)