C10 Représentation des entiers négatifs
Activités
Activité 1 : Complément à deux
Cours
Vous pouvez télécharger une copie au format pdf du diaporama de synthèse de cours présenté en classe :
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
- On code les entiers en complément à deux sur 4 bits
- Quel est le plus petit entier représentable ?
- Quel est le plus grand entier représentable ?
- Mêmes questions sur 16 bits
Exercice 2 : Soustraction binaire
- Coder en binaire sur un octet en complément à deux \(177_{10}\).
- Même question pour \(-135_{10}\).
- Faire l'addition binaire de ces deux nombres.
- Vérifier en écrivant le résultat en décimal qu'on obtient bien 42.
Exercice 3 : Un peu de programmation
- 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 exemplebinaire(42)
renvoie"00101010"
. - 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 exempleinverse_bit("10110001")
renvoie"01001110"
- 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 exempleajoute_un("1001010")
renvoie1001011
. - 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.