Donnez le résultat (en décimal) et les valeurs de CF (Carry Flag – entiers non signés) et OF (Overflow Flag – entiers signés) après les opérations ci-dessous.
Pour vous éviter d'avoir recours à une calculatrice, voici les valeurs de quelques puissances de 2 : 27 = 128 ; 28 = 256 ; 215=32768 ; 216 = 65536 .
Complétez le tableau ci-dessous :
Vous pouvez télécharger le tableau de l'exercice en suivant le lien "document" ci-dessous :
tableau_exercice14
Solution détaillée
-
Ligne 1 : 0b00000000 - 0b1 = 0b11111111, valeur qui est interprétée comme 28 -1 dans les entiers non signés (avec un Carry Flag à 1 qui indique une retenue, donc un résultat invalide) ou comme -1 dans les entiers signés (avec un Overflow Flag à 0 qui indique un résultat valide).
-
Ligne 2 : 0b01111111 + 0b1 = 0b10000000, valeur qui est interprétée comme 27 dans les entiers non signés (avec un Carry Flag à 0 qui indique l'absence de retenue, donc un résultat valide) ou comme - 27 dans les entiers signés (avec un Overflow Flag à 1 qui indique un résultat invalide).
-
Ligne 3 : 0b11111111 + 0b1 = 0b00000000, valeur qui est interprétée comme 0 dans les entiers non signés (avec un Carry Flag à 1 qui indique une retenue, donc un résultat invalide) et également comme 0 dans les entiers signés (mais cette fois avec un Overflow Flag à 0 qui indique un résultat valide).
-
Ligne 4 : 0b10000000 – 0b1 = 0b01111111, valeur qui est interprétée comme 27-1 dans les entiers non signés (avec un Carry Flag à 0 qui indique l'absence de retenue, donc un résultat valide) et également comme 27-1 dans les entiers signés (mais cette fois avec un Overflow Flag à 1 qui indique un résultat invalide).
-
Ligne 5 : 0b0000000000000000-0b1 = 0b1111111111111111, valeur qui est interprétée comme 216 -1 dans les entiers non signés (avec un Carry Flag à 1 qui indique une retenue, donc un résultat invalide) ou comme -1 dans les entiers signés (avec un Overflow Flag à 0 qui indique un résultat valide).
-
Ligne 6 : 0b0111111111111111+0b1 = 0b1000000000000000, valeur qui est interprétée comme 215 dans les entiers non signés (avec un Carry Flag à 0 qui indique l'absence de retenue, donc un résultat valide) ou comme - 215 dans les entiers signés (avec un Overflow Flag à 1 qui indique un résultat invalide).
-
Ligne 7 : 0b1111111111111111+0b1 = 0b0000000000000000, valeur qui est interprétée comme 0 dans les entiers non signés (avec un Carry Flag à 1 qui indique une retenue, donc un résultat invalide) et également comme 0 dans les entiers signés (mais cette fois avec un Overflow Flag à 0 qui indique un résultat valide).
-
Ligne 8 : 0b1000000000000000 – 0b1 = 0b0111111111111111, valeur qui est interprétée comme 215-1 dans les entiers non signés (avec un Carry Flag à 0 qui indique l'absence de retenue, donc un résultat valide) et également comme 215-1 dans les entiers signés (mais cette fois avec un Overflow Flag à 1 qui indique un résultat invalide).