Cours et activités en arithmétique pour les classes ... - Robert Rolland
Cours et activités en arithmétique pour les classes ... - Robert Rolland
Cours et activités en arithmétique pour les classes ... - Robert Rolland
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
50 Chapitre 3<br />
En conséqu<strong>en</strong>ce <strong>pour</strong>vu que x1, x2 <strong>et</strong> x1 + x2 soi<strong>en</strong>t dans I, on obti<strong>en</strong>t le<br />
développem<strong>en</strong>t binaire de R(x1 + x2) <strong>en</strong> additionnant <strong>les</strong> développem<strong>en</strong>ts<br />
binaires de R(x1) <strong>et</strong> R(x2), <strong>et</strong> <strong>en</strong> tronquant au delà du huitième bit.<br />
c) Nous allons calculer dans différ<strong>en</strong>ts cas C, α, V <strong>et</strong> regarder dans chaque<br />
cas la validité de l’opération.<br />
c1) x1 ≥ 0 <strong>et</strong> x2 ≥ 0.<br />
Dans ce cas on a R(x1) = x1, R(x2) = x2, R(x1) + R(x2) < 256, donc C = 0.<br />
• Si x1 + x2 ≤ 127 (ou R(x1) + R(x2) ≤ 127), l’opèration est valide, il n’y a<br />
pas non plus de r<strong>et</strong><strong>en</strong>ue du septième bit vers le huitième (puisque le résultat<br />
ne dépasse pas 127). Dans ce cas on a α = 0 <strong>et</strong> donc V = 0.<br />
• Si x1 + x2 ≥ 128 (ou R(x1) + R(x2) ≥ 128), l’opération n’est pas valide,<br />
il y a une r<strong>et</strong><strong>en</strong>ue du septième bit vers le huitième (puisque le résultat est<br />
≥ 128). Dans ce cas α = 1 <strong>et</strong> V = 1.<br />
c2) x1 ≥ 0 <strong>et</strong> x2 < 0 (ou de façon symétrique x1 < 0 <strong>et</strong> x2 ≥ 0).<br />
L’opération est toujours valide. De plus le huitième bit de R(x1) est 0 alors<br />
que celui de R(x2) est 1. Par suite il y a une r<strong>et</strong><strong>en</strong>ue du huitième bit vers<br />
l’extérieur si <strong>et</strong> seulem<strong>en</strong>t si il y a une r<strong>et</strong><strong>en</strong>ue du septième bit vers le huitième.<br />
En conséqu<strong>en</strong>ce ou bi<strong>en</strong> C = α = 1 ou bi<strong>en</strong> C = α = 0. Dans <strong>les</strong> deux cas<br />
V = 0.<br />
c3) x1 < 0 <strong>et</strong> x2 < 0.<br />
Les développem<strong>en</strong>ts binaires de R(x1) <strong>et</strong> R(x2) ont tous leur huitième bit<br />
valant 1. Donc C = 1.<br />
On considère alors <strong>les</strong> 7 premiers bits de R(x1) <strong>et</strong> R(x2), ce qui revi<strong>en</strong>t à<br />
pr<strong>en</strong>dre R(x1)−128 <strong>et</strong> R(x2)−128. Or R(x1) = x1 +256 <strong>et</strong> R(x2) = x2 +256,<br />
donc<br />
(R(x1) − 128) + (R(x2) − 128) = x1 + x2 + 256.<br />
• Si x1+x2 < −128 (opération invalide) alors (R(x1)−128)+(R(x2)−128) <<br />
128, <strong>et</strong> il n’y a pas de r<strong>et</strong><strong>en</strong>ue du septième bit vers le huitième. Donc α = 0,<br />
V = 1.<br />
• Si x1 + x2 ≥ −128 (opération valide) alors (R(x1) − 128) + (R(x2) − 128) ≥<br />
128, <strong>et</strong> il y a une r<strong>et</strong><strong>en</strong>ue du septième bit vers le huitième. Donc α = 1,<br />
V = 0.<br />
c4) En raisonnant par exhaustion on voit que l’opération est valide si <strong>et</strong><br />
seulem<strong>en</strong>t si V = 0.<br />
Ext<strong>en</strong>sion des résultats Il suffit de remplacer 256 par 2 16 si on travaille<br />
sur deux oct<strong>et</strong>s. On obti<strong>en</strong>dra <strong>les</strong> mêmes résultats.