Aller au contenu

C10 Représentation des entiers négatifs

Activités

▪ Activité 1 : Complément à deux

Fiche d'activité

Cours

Vous pouvez télécharger une copie au format pdf du diaporama de synthèse de cours présenté en classe :

Diaporama de cours

Attention

Ce diaporama ne vous donne que quelques points de repères lors de vos révisions. Il devrait être complété par la relecture attentive de vos propres notes de cours et par une révision approfondie des exercices.

QCM

1. Que peut-on dire de l'entier relatif \(101001_2\) codé sur 8 bits en complément à deux ?

  • a) Cet entier est pair.
  • b) Cet entier est négatif.
  • c) Cet entier est positif.
  • d) Ce entier vaut \(-23_{10}\).
  • a) Cet entier est pair.
  • b) Cet entier est négatif.
  • c) Cet entier est positif.
  • d) Ce entier vaut \(-23_{10}\).

2. Quel est l'entier relatif codé en complément à deux sur un octet par \(11111111\)

  • a) \(-1\)
  • b) \(-128\)
  • c) \(-127\)
  • d) 255
  • a) \(-1\)
  • b) \(-128\)
  • c) \(-127\)
  • d) 255

3. Le complément à deux sur un octet de \(10110100_2\) est :

  • a) \(01001011_2\)
  • b) \(00110100_2\)
  • c) \(01001000_2\)
  • d) \(01001100_2\)
  • a) \(01001011_2\)
  • b) \(00110100_2\)
  • c) \(01001000_2\)
  • d) \(01001100_2\)

4. Si \(1011_2\) est un entier signé sur quatre bits en complément à 2, alors sa valeur décimale est :

  • a) \(-7\)
  • b) \(-5\)
  • c) 5
  • d) 7
  • a) \(-7\)
  • b) \(-5\)
  • c) 5
  • d) 7

5. Donner l'écriture de \(-3_{10}\) en complément à deux sur quatre bits :

  • a) 0111
  • b) 1101
  • c) 1011
  • d) 1111
  • a) 0111
  • b) 1101
  • c) 1011
  • d) 1111

Exercices

▪ Exercice 1 : Du plus petit au plus grand

  1. On code les entiers en complément à deux sur 4 bits
    1. Quel est le plus petit entier représentable ?
    2. Quel est le plus grand entier représentable ?
  2. Mêmes questions sur 16 bits

▪ Exercice 2 : Soustraction binaire

  1. Coder en binaire sur un octet en complément à deux \(177_{10}\).
  2. Même question pour \(-135_{10}\).
  3. Faire l'addition binaire de ces deux nombres.
  4. Vérifier en écrivant le résultat en décimal qu'on obtient bien 42.

▪ Exercice 3 : Un peu de programmation

  1. Ecrire une fonction Python binaire(entier) qui prend en entrée un entier compris entre 0 et 127 et renvoie une chaîne de caractère contenant la représentation binaire de cet entier sur un octet. Par exemple binaire(42) renvoie "00101010".
  2. Ecrire une fonction Python inverse_bit(chaine) qui prend en entrée une chaîne de caractère et renvoie la chaîne dans laquelle tous les 0 ont été remplacés par des 1 et tous les 1 par des 0. Par exemple inverse_bit("10110001") renvoie "01001110"
  3. Ecrire une fonction Python ajoute_un(chaine) qui prend en entrée une chaîne de caractères et effectuer l'addition binaire de 1 au nombre binaire représenté par cette chaine. Par exemple ajoute_un("1001010") renvoie 1001011.
  4. En utilisant les fonctions ci-dessus, écrire une fonction Python qui renvoie la représentation en complément à deux sur 8 bits d'un entier passé en paramètre.