tranches de pbits `a partir de la droite (la derni`ere tranche ´etant compl´et´ee par des 0 si elle est
incompl`ete, c’est-`a-dire si nn’est pas multiple de p). Chacune des tranches ainsi obtenues est la
repr´esentation en base 2 d’un chiffre de la repr´esentation de aen base 2p.
Les valeurs usuelles de psont 3 (num´eration en base 8, ou octale) et 4 (num´eration en base 16, ou
hexad´ecimale)
Les chiffres octaux sont not´es : 0, 1, 2, 3, 4, 5, 6, 7. Les chiffres hexad´ecimaux sont not´es : 0, 1, 2,
3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (les lettres A,. . ., F peuvent aussi ˆetre ´ecrites en minuscules).
Exemple.
Soit `a repr´esenter 491 sur 10 bits :
en binaire : 0 1 1 1 1 0 1 0 1 1
en octal : 0 0 0 1 1 1 1 0 1 0 1 1
0 7 5 3
en hexad´ecimal : 0 0 0 1 1 1 1 0 1 0 1 1
1 E B
L’int´erˆet des repr´esentations octale et hexad´ecimale est de permettre une notation plus condens´ee
que la repr´esentation binaire. Par exemple, les 256 valeurs possibles d’un octet (8 bits) se repr´esentent
au moyen de deux chiffres hexad´ecimaux (00, 01, . . ., FE, FF).
1.3 Op´erations
Nous associons au type entier positif les op´erations binaires suivantes : addition, soustraction,
multiplication, division, ainsi que la comparaison (op´eration dont le r´esultat appartient `a l’ensemble
{<, ≤, >, ≥,=,6=}).
Il est important de noter que les op´erations arithm´etiques que nous consid´erons ne sont pas iden-
tiques aux op´erations usuelles de mˆeme nom : nos op´erations n’ont de sens que si les valeurs des
op´erandes et du r´esultat appartiennent `a l’ensemble des valeurs repr´esentables, soit {0, 1, . . ., 2n−1}.
Nous n’examinons en d´etail que l’op´eration d’addition.
Rappelons au pr´ealable les r`egles de l’addition sur les bits. Cette op´eration est commutative et
associative. En ajoutant deux bits xet y, on obtient une somme set une retenue r, ce que l’on r´esume
par la formule : (s, r)←x⊕y. On r´ealise ainsi ce qu’on appelle un demi-additionneur (Table 2).
x y s r
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
On a : x+y=s+ 2r,s=xxor y,r=xand y
Tab. 2 – Demi-additionneur sur 1 bit
En ´etendant cette op´eration `a trois bits x,y,z, on obtient un additionneur complet, qui r´ealise
(s, r)←x⊕y⊕z(Table 3).
Soit maintenant `a faire la somme de deux entiers positifs aet brepr´esent´es par les suites
(an−1, an−2, . . . , a0) et (bn−1, bn−2, . . . , b0). Remarquons que la somme a+bpeut ˆetre sup´erieure `a
2n−1 et n’est donc pas n´ecessairement repr´esentable. Soit s= (a+b)mod 2n(partie repr´esentable
de la somme), et soit (sn−1, sn−2, . . . , s0) la repr´esentation de s. On obtient les si`a partir des aiet bi
par l’algorithme classique de l’addition. On note rila retenue prise en compte au rang i(la retenue
initiale r0est nulle et riest engendr´ee au rang i−1 pour i > 0) :
Autrement dit, on effectue la somme bit `a bit de droite `a gauche en reportant les retenues
c
Equipe enseignement UE INF241 ALM - 19 juin 2007 2