Exercice 1 Représentation machine des entiers relatifs
Dans cet exercice, on considère les entiers relatifs stockés sur des mots de 1 octet, c'est-à-dire
sur 8 bits.
1. Quels sont les entiers relatifs que l'on peut représenter par le codage en complément à deux ?
2. Donner la représentation décimale des entiers signés suivants, codés en complément à deux :
00001101 et 11001101.
3. Donner le codage en complément à deux des entiers signés suivants : 60 et −127.
4. On suppose les entiers représentés en complément à deux par une chaîne de caractères de longueur
8 constituée des caractères '0' et '1'. Par exemple, les entiers évoqués à la question 2 sont
représentés par les chaînes de caractères '00001101' et '11001101'.
Rédiger une fonction qui prend en paramètre la représentation d'un entier n et retourne celle de
l'entier −n.
Indication. Si s est une chaîne de caractères, l'énumération for c in s: énumère les caractères
de s de la gauche vers la droite tandis que for c in reversed(s): énumère ces mêmes caractères
de la droite vers la gauche.
la variable r représente la retenue qui se propage lors de l'addition.
Exercice 2 Représentation machine des entiers relatifs
Dans cet exercice, on considère des entiers relatifs stockés sur des mots de 1 octet, c'est-à-dire
sur 8 bits.
a) Quels sont les entiers relatifs que l'on peut représenter par le codage en complément à deux ?
b) Donner la représentation décimale des entiers signés suivants, codés en complément à deux :
00110101 et 10110101.
c) Donner le codage en complément à deux des entiers signés suivants : 97 et −34.
d) Rappeler l'algorithme utilisé pour calculer la représentation de l'opposé d'un entier codé en
complément à deux. Quel entier obtient-on si on applique cet algorithme à −128 ?
e) Soit x le nombre représenté par 10000010 et y celui représenté par 10101011. Soit z le nombre
obtenu en additionnant (sur 8 bits) ces deux représentations. Que valent x, y et z ? A-t-on
z = x+y? Si non, précisez la relation liant x+y et z.
Exercice 3 Calculs
1. Faire les additions suivantes.
(111001.1)2 + (11010.101)2 ; (110110.11)2 + (110111)2 + (10011)2 ;
2. Calculer les soustractions suivantes.
(1010001.01)2 − (101110.1)2 ; (111001.1)2 − (11010.101)2 ;
3. Calculer les produits suivants.
(11011)2 × (1101)2 ; (10111.011)2 × (101.1)2 ;
4. Calculer les divisions suivantes.
(1111001111)2 ÷ (1101)2 ; (1110111111.11)2 ÷ (1011)2 ;