25.06.2013 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!