Aller au contenu

Chapitre 5. Entiers signés

Activités introductives

1. La représentation par signe-valeur absolue

2. La représentation par complément à 2

Méthodes

  • Calculer en binaire un opposé, déterminer une plage de valeurs, convertir du binaire au décimal et inversement (Diaporama)

Exercices d’application

Exercice 1. Calculer en binaire un opposé

Calculer en binaire l’opposé des nombres suivants codés en complément à deux sur 8 bits.

  1. 10110011|_{\text{C}2}

    Réponse attendue
    • L’inverse de 10110011 est 01001100.
    • On ajoute 1 à l’inverse. Puisque le bit de poids faible (bit le plus à droite) est 0, le calcul est immédiat. On obtient 01001101.

    Donc, l’opposé de 10110011|_{\text{C}2} est 01001101|_{\text{C}2}.

  2. 01101000|_{\text{C}2}

    Réponse attendue
    • L’inverse de 01101000 est 10010111.
    • On ajoute 1 à l’inverse. Si nécessaire, on peut poser l’addition. Les retenues sont présentées en rouge.

    Donc, l’opposé de 01101000|_{\text{C}2} est 10011000|_{\text{C}2}.

Exercice 2. Nombre de bits et plages de valeurs
  1. En complément à deux, quelle plage d’entiers peut-on coder sur 7 bits ?

    Réponse attendue
    • Réponse courte (suffisante) Sur 7 bits, on peut donc coder en complément à deux les entiers allant de -64 à 63.

    • Réponse détaillée (non exigible)

      2^7 = 128 donc sur 7 bits, on peut coder 128 valeurs différentes. En complément à deux :

      • la moitié (c’est-à-dire 64 valeurs) sera utilisée pour représenter les entiers strictement négatifs (de -64 à -1) ;
      • l’autre moitié (c’est-à-dire 64 valeurs) sera utilisée pour représenter les entiers positifs ou nuls (de 0 à 63).

      Conclusion. Sur 7 bits en complément à deux, on peut représenter les entiers compris entre -64 et 63.

  2. Au décollage, le système de guidage de la fusée Ariane 4 était étalonné en mesurant l’accélération. Cette accélération était représentée dans les calculateurs de la fusée par un entier signé pouvant prendre toutes les valeurs entre -32768 et +32767. Sur combien d’octets était représentée cette accélaration ?

    Réponse attendue

    Le nombre d’entiers à coder est 2 \times 32768 = 65536. Un octet correspond à 8 bits, deux octets 16 bits, trois octets 24 bits etc.

    Sur un octet on peut représenter 2^8 = 256 valeurs différentes c’est insuffisant. Essayons avec deux octets. Sur deux octets, on peut représenter 2^{16} = 65536 valeurs différentes.

    On en conclue que l’accélération était représentée sur deux octets.

    Remarque. Il s’agissait ici de résoudre l’équation 2^n = 65536 (quelle puissance de deux donne 65536 ?). La fonction mathématique \log_2 (logarithme en base deux) permet de résoudre cette équation :

Exercice 3. Convertir du binaire au décimal

Convertir en décimal les entiers signés suivants représentés en complément à deux sur 8 bits.

  1. 01101101|_{\text{C}2}

    Réponse attendue

    Le nombre 01101101|_{\text{C}2} commence par le chiffre 0. C’est donc un nombre positif ou nul. On peut donc le traiter comme un entier non-signé.

  2. 10010110|_{\text{C}2}

    Réponse attendue

    Le nombre 10010110|_{\text{C}2} commence par le chiffre 1. C’est donc un nombre strictement négatif.

    Méthode 1.

    \begin{align*} 10010110|_{\text{C}2} &= -2^7 + 2^4 + 2^2 + 2^1 \\ &= -128 + 16 + 4 + 2 \\ &= -106 \end{align*}

    Méthode 2.

    L’inverse de 10010110 est 01101001. En ajoutant 1 à l’inverse, on obtient l’opposé du nombre de départ : 01101010. Donc le nombre de départ est l’opposé c’est-a-dire -106.

    La méthode 1. est clairement plus rapide ici.

  3. 11011111|_{\text{C}2}

    Réponse attendue

    Le nombre 11011111|_{\text{C}2} commence par le chiffre 1. C’est donc un nombre strictement négatif.

    Méthode 1.

    \begin{align*} 11011111|_{\text{C}2} &= -2^7 + 2^6 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 \\ &= -128 + 64 + 16 + 8 + 4 + 2 + 1 \\ &= -33 \end{align*}

    Méthode 2.

    L’inverse de 11011111 est 00100000. On ajoute 1 à l’inverse et on obtient 00100001.

    Donc le nombre de départ est -33.

    Remarque. On voit ici que la méthode 2. est moins intensive en calcul. Cela s’explique par le fait que le nombre de départ contenait quasi uniquement des 1 qui disparaissent dans l’opposé. À retenir pour gagner du temps/trouver de tête une réponse.

  4. 11111111|_{\text{C}2}

    Réponse attendue

    Réponse courte (suffisante)

    11111111|_{\text{C}2} = -1

    Réponse détaillée (non exigible)

    Le nombre 11111111|_{\text{C}2} commence par le chiffre 1. C’est donc un nombre strictement négatif. Par ailleurs, tous ses autres chiffres sont égaux à 1. Ce nombre est donc le nombre strictement négatif le plus grand c’est-à-dire -1. On peut le vérifier par le calcul :

    \begin{align*} 11111111|_{\text{C}2} &= -2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 \\ &= -128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 \\ &= -1 \end{align*}
  5. 11111110|_{\text{C}2}

    Réponse attendue

    Le nombre 11111110|_{\text{C}2} commence par le chiffre 1. C’est donc un nombre strictement négatif.

    Méthode 1.

    \begin{align*} 11111110|_{\text{C}2} &= -2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 \\ &= -128 + 64 + 32 + 16 + 8 + 4 + 2 \\ &= -2 \end{align*}

    Méthode 2.

    L’inverse de 11111110 est 00000001. On ajoute 1 à l’inverse et on obtient 00000010 qui vaut 2. Donc le nombre de départ est -2.

    Méthode 3.

    \begin{align*} 11111110|_{\text{C}2} &= 11111111|_{\text{C}2} - 1 \\ &= -1 - 1 \\ &= -2 \end{align*}

    Remarque. À nouveau, on voit que la méthode 1. n’est pas la plus efficace lorsque le nombre de départ contient de nombreux 1.

Exercice 4. Convertir du décimal au binaire

Représenter les entiers suivants sur 8 bits en complément à 2.

  1. 23

    Réponse attendue

    23 étant un nombre positif, on peut utiliser directement les méthode vues au chapitre 2.

    Méthode 1. Par soustractions successives/décomposition en puissances de deux

    Méthode 2. Par divisions successives

    Donc :

    Remarque. Il ne faut pas oublier à la dernière étape d’ajouter les zéros à gauche pour obtenir la représentation en complément à deux sur le nombre de bits demandé c’est-à-dire 8.

  2. -45

    Réponse attendue
    • Étape 1. On commence par déteminer la représentation binaire de l’opposé du nombre de départ c’est-à-dire 45.

      Méthode 1. Par soustractions successives/décomposition en puissances de deux

      Méthode 2. Par divisions successives

      Donc 45 = 101101|_2.

    • Étape 2. On détermine l’opposé du nombre binaire positif obtenu.

      \begin{align*} 101101|_2 &= 00101101|_{\text{C}2} &\xrightarrow{\text{inversion}} 11010010|_{\text{C}2} \\ & &\xrightarrow{\text{ajout de 1}} 11010011|_{\text{C}2} \end{align*}
    • Conclusion. -45 = 11010011|_{\text{C}2}

  3. -34

    Réponse attendue
    • Étape 1. On commence par déteminer la représentation binaire de l’opposé du nombre de départ c’est-à-dire 34.

      Méthode 1. Par soustractions successives/décomposition en puissances de deux

      Méthode 2. Par divisions successives

      Donc 34 = 100010|_2.

    • Étape 2. On détermine l’opposé du nombre binaire positif obtenu.

      \begin{align*} 100010|_2 &= 00100010|_{\text{C}2} &\xrightarrow{\text{inversion}} 11011101|_{\text{C}2} \\ & &\xrightarrow{\text{ajout de 1}} 11011110|_{\text{C}2} \end{align*}
    • Conclusion. -34 = 11011110|_{\text{C}2}

  4. -128

    Réponse attendue

    -128 est un nombre strictement négatif. Sa représentation en complément à deux commence donc par le chiffre 1. De plus, -128 = -2^7 est le nombre strictement négatif le plus petit qu’il est possible de représenter sur 8 bits en complément à deux. Ses chiffres restants en complément à deux sont donc tous égaux à zéro. Donc -128 = 10000000|_{\text{C}2}.

  5. 127

    Réponse attendue

    127 est un nombre positif. Sa représentation en complément à deux commence donc par le chiffre 0. De plus, 127 = 2^7 - 1 est le nombre positif le plus grand qu’il est possible de représenter sur 8 bits en complément à deux. Ses chiffres restants en complement à deux sont donc tous égaux à un. Donc 127 = 01111111|_{\text{C}2}.

  6. -1

    Réponse attendue

    Réponse courte (suffisante)

    -1 = 11111111|_{\text{C}2}

    Réponse détaillée (non exigible)

    -1 est un nombre strictement négatif. Sa représentation en complément à deux commence donc par le chiffre 1. De plus, -1 est le nombre strictement négatif le plus grand qu’il est possible de représenter sur 8 bits en complément à deux. Ses chiffres restants en complement à deux sont donc tous égaux à un. Donc -1 = 11111111|_{\text{C}2}.

TP de programmation

Vous allez vous rendre sur l’hébergeur d’activité Capytale en cliquant sur le lien fourni ci-après. Avant de cliquez sur ce lien, lire les instructions suivantes.

Instructions
  1. Cliquez sur le lien en fin de question. Vous accédez à la page de connexion de Capytale.
  2. Cliquez sur le lien Monlycée.net (Île-de-France).
  3. Identifiez-vous avec vos identifiants ENT.
  4. Le code de l’activité s’affiche. Cliquez sur le bouton Go ! .
  5. Attendez le chargement de l’activité.
  6. Commencez l’activité.
  7. En commençant l’activité, une copie personnelle de l’activité a été automatiquement créée et ajoutée à votre espace personnel sur Capytale.

Remarque. Après avoir quitté l’activité, vous pourrez reprendre votre travail à tout moment en cliquant à nouveau sur le lien ci-après ou en vous rendant directement sur votre espace personnel dans Capytale.

Cliquez sur lien ci-dessous pour accéder à l’activité :

Cahier de travail