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,...,r−1} → 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/2−1modulo rn
un nombre positif (entre 0 et rn/2−1) 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 : x≥0⇔son chiffre de poids fort xn−1est <r/2 ;
Exemple : r=10,n=4, 3265 s’écrit 3265, et −3265 s’écrit
6735 ;
en base 2 (complément à 2), xn−1xn−2···x0représente
−xn−12n−1+
n−2
X
i=0
xi2i.
L’addition en complément à la base
l’addition se fait modulo rn→addition 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 x−yc’est calculer x+ (−y);
si y= (yn−1. . . y0)en complément à 2, définissons
¯
y= (yn−1. . . 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%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!