Aller au contenu

Conversions

Cette page présente les algorithmes de conversion entre la valeur décimale d'un entier relatif et sa représentation binaire par complément à deux.

À nouveau, pour faciliter la manipulation, on explique cette représentation avec les entiers signés sur un octet (type signed char en langage C).

Conversion de binaire à décimal

Algorithme

Lorsque le premier bit vaut 0, alors le nombre entier (en base 10) représenté est positif.
On traduit en décimal avec la méthode usuelle sur les entiers positifs.

Lorsque le premier bit vaut 1, alors le nombre entier (en base 10) représenté est négatif.

  1. On détermine l’entier positif qui correspond à la représentation binaire donnée.
  2. On soustrait à cet entier le nombre 2^{nb \; total \; de \; bits}.
  3. On obtient l’entier relatif correspondant à la représentation binaire donnée.

Exemples

  1. Déterminer la valeur de l’entier relatif représenté en complément à 2 par  (0011 \, 0011)_2.

    Une réponse

    Ce nombre binaire commence par 0 : il représente un entier positif.
    On traduit usuellement 32 + 16 + 2 + 1 = 51.

  2. Déterminer la valeur de l’entier relatif représenté en complément à 2 par  (1010 \, 0101)_2.

    Une réponse

    Ce nombre binaire commence par 1 : il représente un entier négatif.

    • On prend l’entier positif correspondant : 128 + 32 + 4 + 1 = 165.
    • On lui soustrait 2^{nb \; total \; de \; bits} = 2^8 : 165 – 256 = –91.
    • (1010 \, 0101)_2 représente (–91)_{10} en complément à 2.

Conversion de décimal à binaire

Algorithme

Soit x l’entier relatif à convertir.

  1. On identifie la « plage » de cet entier.

    Par exemple
    • 1 octet (8 bits) pour –128 \leqslant x \leqslant 127 ;
      • 2 octets (16 bits) pour –2^{15} \leqslant x \leqslant 2^{15}-1 ;
      • 4 octets (32 bits) pour –2^{31} \leqslant x \leqslant 2^{31}-1.
  2. Lorsque x est positif, on prend sa représentation binaire usuelle sur cette « plage » et c’est terminé.

  3. Lorsque x est négatif :

    1. On prend la représentation binaire usuelle de l'entier positif -x ;

    2. On inverse tous les bits ;

    3. On ajoute 1 pour obtenir la représentation binaire par complément à 2 de l’entier relatif x.

Exemples

  1. Déterminer la représentation binaire par complément à 2 sur un octet de –27.

    Une réponse

    –27 est négatif et il est compris entre –128 et –1 (la « plage » de cet entier est bien sur un octet).

    • La représentation binaire de 27 est (0001 \, 1011)_2.
    • On inverse les bits : (1110 \, 0100)_2.
    • On ajoute 1 : (1110 \, 0101)_2.

    –27 est représenté par (1111 \, 0100)_2 en complément à 2 sur un octet.

  2. Déterminer la représentation binaire de 195 par complément à 2.

    Une réponse

    On a –2^{15} \leqslant 195 \leqslant 2^{15}-1 donc la représentation binaire par complément à 2 de 195 est sur 2 octets : (0000 \, 0000 \, 1100 \, 0011)_2.