Manipulation des entiers signés : signe et valeur absolue

Manipulation des entiers signés : signe et valeur absolue
Système non redondant de base r;
chiffres ∈ {0,1,...,r1} → on représente tous les entiers
positifs.
Comment représenter les entiers relatifs (i.e. signés) ?
Première solution : signe et valeur absolue
conceptuellement simple ;
calcul de l’opposé trivial ;
deux représentations du zéro : +0 et 0 ;
algorithme (et donc circuit) différent pour addition et
soustraction
Manipulation des entiers signés : complément à la base (r
pair)
on dispose de npositions (on représente rnnombres
différents), on choisit de représenter tous les nombres compris
entre rn/2 et rn/21modulo rn
un nombre positif (entre 0 et rn/21) est représenté par son
écriture usuelle ;
un nombre xentre rn/2 et 1 est représenté par l’écriture
usuelle de x+rn;
signe : x0son chiffre de poids fort xn1est <r/2 ;
Exemple : r=10,n=4, 3265 s’écrit 3265, et 3265 s’écrit
6735 ;
en base 2 (complément à 2), xn1xn2···x0représente
xn12n1+
n2
X
i=0
xi2i.
L’addition en complément à la base
l’addition se fait modulo rnaddition usuelle en ignorant la
retenue sortante ;
6 7 3 5
+4 2 6 6
611001 3265 +4266 =1001.
dépassement de capacité lors du calcul de x+y:
s’ils sont de signes opposés, aucun dépassement possible ;
sinon : dépassement ssi la somme obtenue est de signe différent
Soustraction ?
ici : base 2 ;
calculer xyc’est calculer x+ (y);
si y= (yn1. . . y0)en complément à 2, définissons
¯
y= (yn1. . . y0);
y+¯
y= (1111 ···1) = 1, donc y=¯
y+1
soustraire un nombre = ajouter son complément, avec une
retenue entrante égale à 1 dans l’additionneur.
Multiplication
Multiplier : au moins aussi difficile qu’additionner (on s’en doutait !)
Y=2ny+1
x000 · · · 001
000 · · · 001
y
2n
X=2nx+1
le produit XY donne :
4n
xy x +y000 ··· 01
XY =22nxy +2n(x+y) + 1.
Si on savait calculer XY en temps meilleur que O(log(4n))
=O(log(n)), on aurait x+yen temps meilleur que O(log(n)).
1 / 32 100%

Manipulation des entiers signés : signe et valeur absolue

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !