LSM 3.053
Informatique : TP n°3
Exercice 1 : Représentation des entiers négatifs
La représentation des entiers négatifs nécessite d'ajouter à la représentation un bit de signe, placé en
tête. Par convention, un bit de signe à 0 indique une valeur positive, un bit de signe à 1 une valeur
négative. Cette règle permet de rester cohérent avec le système de représentation des entiers positifs,
puisqu'il suffit d'ajouter un 0 en tête de chaque valeur.
Deux méthodes de codage ont été successivement introduites :
Méthode du "Complément à un"
Ce codage consiste à inverser la valeur de chaque bit du codage binaire de l'entier.
Cette méthode a un défaut puisqu'il y a 2 représentations de la valeur 0: 0000 ou 1111.
Méthode du "Complément à deux"
Pour palier le défaut précédent, on a introduit la représentation par complément à deux. Celle-ci
consiste à réaliser un complément à un de la valeur, puis d'ajouter 1 au résultat.
1) On écrit d'abord en binaire la valeur absolue de l'entier à coder
2) On inverse chacun des bits
3) On ajoute 1
Exemple: codage sur 4 bits de -5 1) on code 5 : 0101
2) on inverse les bits: 1010
3) on ajoute 1: 1011
L'addition en complément à deux se fait comme une addition normale, mais en ignorant la dernière
retenue :
Exemple: addition de -5 et +7 -5 1011
+7
0111
2 (1) 0010 (on "ignore" la retenue)
Avec n bits, la méthode du complément à deux permet de représenter les nombres entre -2n-1 et 2n-1-1.
Réalisez un programme qui :
• demande via une boite de dialogue la valeur d'un nombre N à convertir sur 4 bits
• si ABS(N) <8 a) convertit N en 4 bits {signe, p4, p2, p1}
tels que N = -1signe + p4*22 +p2*21+p1*20
(fonctions IIf, Abs et Int)
b) inverse les bits p4, p2, p1 (fonction IIf)
c) ajoute 1 au binaire p4 p2 p1 (attention aux retenues
successives).
d) convertisse signe, p4, p2 et p1 en caractères et affiche
dans une boite la chaine ("signe" "p4" "p2" "p1")
• si ABS(N) >7 Affiche un message d'erreur indiquant que le nombre ne peut
être codé sur 4 bits.
1) Dessinez l'organigramme du programme :
2) Réalisez par étapes le programme
a) codage sur 4 bits la valeur absolue d'un entier
b) inversion des bits
c) ajout de 1
d) inclusion des étapes précédentes dans une boucle conditionnelle testant Abs(N).