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  (0101 1010)_2.

    Une réponse

    Ce nombre binaire commence par 0 : il représente un entier positif.
    On traduit usuellement 64 + 16 + 8 + 2 = 90.

  2. Déterminer la valeur de l’entier relatif représenté en complément à 2 par  (1001 0001)_2.

    Une réponse

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

    • On prend l’entier positif correspondant : 128 + 16 + 1 = 145.
    • On lui soustrait 2^{nb \; total \; de \; bits} = 2^8 : 145 – 256 = –111.
    • (1001 0001)_2 représente (–111)_{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 \leq x \leq 127 ;
      • 2 octets (16 bits) pour –2^{15} \leq x \leq 2^{15}-1 ;
      • 4 octets (32 bits) pour –2^{31} \leq x \leq 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 –12.

    Une réponse

    –12 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 12 est (0000 1100)_2.
    • On inverse les bits : (1111 0011)_2.
    • On ajoute 1 : (1111 0100)_2.

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

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

    Une réponse

    On a –2^{15} \leq 217 \leq 2^{15}-1 donc la représentation binaire par complément à 2 de 217 est sur 2 octets : (0000 0000 1101 1001)_2.