Patricia Renault UPMC 2004/2005 UE MAREP Cours 2 : Entiers naturels, entiers relatifs et opérateurs arithmétiques Patricia Renault UPMC 2004/2005
Plan Addition et soustraction de deux entiers naturels Représentation des entiers relatifs en complément à 2 Addition et soustraction de deux nombres entiers relatifs Addition et soustraction en MIPS Diglog
Plan Addition et soustraction de deux entiers naturels Rappels Addition et soustraction sur nombres décimaux Représentation des entiers naturels Addition en base 2 et 16 Soustraction en base 2 et 16 Représentation des entiers relatifs en complément à 2 Addition et soustraction de deux nombres entiers relatifs Addition et soustraction en MIPS Diglog
Rappels Addition et soustraction sur entiers naturels décimaux Remarque : La soustraction n’est pas définie si le nombre à soustraire est plus grand que le nombre dont on le soustrait Représentation des entiers naturels En binaire, un nombre N s’écrit où ai vaut 0 ou 1 L’intervalle de représentation des nombres sur n bits est [0,2n[ 17 5 + 1 7 9 2 715 - 11 7 5 8
Addition en base 2 Règles : 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 => je pose 0 et je retiens 1 1 + 1 + 1 = 11 => je pose 1 et je retiens 1 Lorsque la somme de 2 entiers naturels codés sur n bits n’est pas représentable sur n bits, on dit qu’il y dépassement de capacité sur entiers naturels
Addition en base 2 - Exemples En binaire sur 4 bits 1011 1 0 + 0 0 1 1 1 0 0 1 11 1 0 0 + 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 dépassement de capacité sur entiers naturels
Addition en base 16 - Exemple En hexadécimal sur 16 bits 0 D 2 4 + 5 2 9 2 5 F B 6 11 F A 8 + 7 3 4 2 9 2 E A 516 5 3 + C 2 E 5 1 1 9 3 8 dépassement de capacité sur entiers naturels
Addition Table de vérité et schéma de l’additionneur 1 bit + ai bi couti cini si
Addition Additionneur 4 bits a0 b0 cin0 s0 + cout a3 b3 a2 b2 a1 b1 s3
Soustraction en base 2 Règles : 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 => je prête une deuzaine à 0 qui devient 10, sans oublier de retrancher la deuzaine au nombre de gauche, puis je pose 1 Lorsque le nombre à soustraire est plus grand que le nombre dont on le soustrait, on obtient un dépassement de capacité sur entiers naturels
Soustraction en base 2 - Exemple En binaire sur 4 bits 0 1 1110 - 0 1011 1 0 0 1 1 11 11 10 0 - 11 11 1 0 1 1 1 1 0 1 10 1 0 - 10 1 0 0 0 1 1 0 dépassement de capacité sur entiers naturels
Soustraction en base 16 - Exemples En hexadécimal sur 16 bits C 6 5 13 - 1 2 14 5 B 4 0 E 11 F A 8 -1 7 2 4 2 1 A D 6 6 5 C E 7 - 3 1 4 2 2 B A 5 dépassement de capacité sur entiers naturels
Plan Addition et soustraction de deux entiers naturels Représentation des entiers relatifs Entiers relatifs Complément à 2 Exemples Addition et soustraction de deux nombres entiers relatifs
Entiers relatifs Un entier relatif est un entier qui peut être soit positif soit négatif. Représentation quotidienne : - 3 Inadaptée car 2 zéros !! + 0 et -0 signe valeur absolue
Complément à 2 En complément à 2, un entier N s’écrit où an-1 représente le signe si an-1 = 0 alors N est positif ou nul si an-1 = 1 alors N est négatif et ai . 2i représente le module de N Exemples sur 3 bits 000b = 0d 010b = 2d 100b = -22 = -4d 101b = -22+1 = -3d
Complément à 2 Opposé d’un entier relatif L’opposé de X noté op_X est tel que X+op_X =0 Soit X sur n bit, on a donc
Complément à 2 - Exemples En binaire sur 3 bits : X = 000b, ~X=111 b , op_X = 000b X = 001b, ~X=110b , op_X = 111b X = 010b, ~X= , op_X = X = 011b, ~X= , op_X = X = 101b, ~X= , op_X = X = 111b, ~X= , op_X = En hexadécimal sur 8 bits : X = 3Bh, ~X=C4h , op_X = C5h X = 8Fh, ~X= , op_X = X = 66h, ~X= , op_X =
Complément à 2 Technique utilisée pour calculer l’opposé d’un entier relatif : Recopie de tous les bits de droite vers la gauche jusqu’au premier 1 inclus Opposé de tous les autres bits Exemples en binaire sur 3 bits : X = 000b, op_X = 000b X = 001b, op_X = 111b X = 010b, op_X = X = 011b, op_X = X = 101b, op_X = X = 111b, op_X =
Complément à 2 Extension : Exemples : Nombres représentés sur 4 bits Un nombre représenté sur p bits peut être étendu en un nombre sur n>p bits en introduisant la valeur du bit de rang p-1 sur les bits de rang p à n-1 Exemples : Nombres représentés sur 4 bits N1 = 0110b. Son extension sur 8 bits donne N1 = 0000 0110b N2 = 0001b. Son extension sur 8 bits donne N2 = 0000 0001b N3 = 1001b. Son extension sur 8 bits donne N3 = 1111 1001b N4 = 1101b. Son extension sur 8 bits donne N4 = 1111 1101b N5 = 7h. Son extension sur 8 bits donne N5 = 07h N6 = Ah. Son extension sur 8 bits donne N6 = FAh
Complément à 2 Taille bornée des nombres stockés : Exemples : La représentation en complément à 2 sur n positions permet de représenter les nombres sur l’intervalle : [-2n-1,2n-1-1]. Exemples : Sur 3 bits, on peut représenter les nombres compris entre -4 et 3. Sur 4 bits, on peut représenter les nombres compris entre -8 et 7 [ ] -2n-1 2n-1-1 Son opposé est non représentable sur n bits
Plan Addition et soustraction de deux entiers naturels Représentation des entiers relatifs en complément à 2 Addition et soustraction de deux nombres entiers relatifs Addition Soustraction Exemples
Addition Méthode identique à celle utilisée pour les entiers naturels Exemples en binaire sur 4 bits : 4d+3d = 7h+2h= -2d+-5d = 8h+Ah =
Soustraction Pour calculer la soustraction entre deux entiers relatifs, on calcul l’opposé du nombre à soustraire puis on effectue l’addition avec l’opposé. Exemples en binaire sur 4 bits : 7d-3d= 6h-4h=
Dépassement de capacité Il y a dépassement de capacité sur entiers relatifs lorsque la somme de deux entiers de même signe donne un entier de signe différent. Exemples en binaire sur 4 bits : 7d+2d= -5d+-4d=
Dépassement de capacité Exemples : Cas positif Cas négatif Détection du dépassement de capacité sur entiers relatifs : coutn-1 XOR coutn-2 10 an-2 an-1 … a0 0 bn-2 bn-1 ... b0 --------------------- 1 sn-2 sn-1 .... s0 1 an-2 an-1 … a0 1 bn-2 bn-1 ... b0 --------------------- 1 0 sn-2 sn-1 .... s0 coutn-2 coutn-1
Exemples - Entiers naturels En binaire sur 4 bits : 0101+1010= 0101+0101= 1010+0110= 1100+1001= En hexadécimal sur 16 bits : AB82+1532= 1234+5684= 7F13+2305= 2531+E4CD=
Exemples - Entiers relatifs En binaire sur 4 bits : 0101+1010= 0101+0101= 1010+0110= 1100+1001= En hexadécimal sur 16 bits : AB82+1532= 1234+5684= 7F13+2305= 2531+E4CD=
Addition et soustraction en MIPS Instructions add : addition sur entiers relatifs addu : addition sur entiers non signés (ie. naturels) sub : soustraction sur entiers relatifs subu : soustraction sur entiers non signés (ie. naturels)
DIGLOG Qu’est-ce ? But : Simulateur de porte logiques Additionneur/soustracteur 4 bits