112
1 Je m’appelle El Hadji Issa Sall, je suis professeur à l’Université du Sahel chargé des cours d’informatique générale dispensé aux étudiants de L1 et d’architecture des machines numériques pour les étudiants de L3 INFO et PC. Le cours d’architecture vous permet de concevoir, de réaliser et de maintenir l’ossature des machines et systèmes numériques allant des ordinateurs aux drones en passant par les caméras, les téléphones mobiles, les robots, les objets connectés, les téléviseurs, les systèmes embarqués dans les voitures et les avions, les distributeurs automatiques, les systèmes de transport, la production industrielle, etc. ARCHITECTURE DES MACHINES NUMÉRIQUES PR. ELHADJI ISSA SALL, UNIVERSITÉ DU SAHEL

ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

1

Je m’appelle El Hadji Issa Sall, je suis professeur à

l’Université du Sahel chargé des cours d’informatique

générale dispensé aux étudiants de L1 et d’architecture des

machines numériques pour les étudiants de L3 INFO et PC.

Le cours d’architecture vous permet de concevoir, de

réaliser et de maintenir l’ossature des machines et

systèmes numériques allant des ordinateurs aux drones en

passant par les caméras, les téléphones mobiles, les robots,

les objets connectés, les téléviseurs, les systèmes

embarqués dans les voitures et les avions, les distributeurs

automatiques, les systèmes de transport, la production

industrielle, etc.

ARCHITECTURE DES MACHINES NUMÉRIQUESPR. ELHADJI ISSA SALL, UNIVERSITÉ DU SAHEL

Page 2: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

2

ARCHITECTURE DES MACHINES NUMÉRIQUESPR. ELHADJI ISSA SALL, UNIVERSITÉ DU SAHEL

SYLLABUS DU COURS

• la représentation des nombres

• le codage analytique et représentatif

• l’arithmétique numérique

• L’algèbre de Boole et les portes logiques élémentaires

• la logique combinatoire

• la logique séquentielle,

• l’unité arithmétique et logique et les microprocesseurs

• les mémoires vives, mortes, virtuelles et de masse

• les périphériques, les interfaces, la connectique

• les classes et types d’ordinateurs

Chaque partie du cours comprendra une introduction,

l’exposé du cours, un résumé, des exercices et une

bibliographie.

Page 3: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Les différentes bases utilisées dans les machines numériques

Représentation polynomiale et positionnelle d’un nombre

Conversion de la base 10 vers les autres bases

Conversion d’un nombre en base 10 vers la base 2 par la méthode des puissances ou des additions successives

Conversion d’un nombre en base 10 vers la base 2 par la méthode des divisions successives

Conversion d’un nombre en base 10 vers la base 2 par la méthode des soustractions

Conversion d’un nombre en base 10 vers la base 8 par la méthode des puissances ou des additions successives

Conversion d’un nombre en base 10 vers la base 8 par la méthode des divisions successives

Conversion d’un nombre en base 10 vers la base 16 par la méthode des puissances ou des additions successives

Conversion d’un nombre en base 10 vers la base 16 par la méthode des divisions successives

Conversion de la base 2 vers les autres bases

Conversion d’un nombre en base 2 vers la base 10 par la méthode des puissances et des additions

Conversion d’un nombre en base 2 vers la base 8 via la base 10 par la méthode des puissances

Conversion d’un nombre en base 2 vers la base 16 via la base 10 par la méthode des puissances

Conversion d’un nombre en base 2 vers la base 8 par la méthode des regroupements par 3

Conversion d’un nombre en base 2 vers la base 16 par la méthode des regroupements par 4

Conversion de la base 8 vers les autres bases

Conversion d’un nombre en base 8 vers la base 10 par la méthode des puissances et des additions

Conversion d’un nombre en base 8 vers la base 16 via la base 10 par la méthode des puissances et des additions

Conversion d’un nombre en base 8 vers la base 16 via la base 2 par la méthode de l’éclatement par 3 et des regroupement de 4

Conversion d’un nombre en base 8 vers la base 2 par la méthode de l’éclatement en groupe de 33

Page 4: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Conversion de la base 16 vers les autres bases

Conversion d’un nombre en base 16 vers la base 10 par la méthode des puissances de 16 et des additions

Conversion d’un nombre en base 16 vers la base 8 via la base 10 par la méthode des puissances de 16 et de 8

Conversion d’un nombre en base 16 vers la base 8 via la base 2 par la méthode de l’éclatement par 4 et des regroupement de 3

Conversion d’un nombre en base 12 vers la base 2 par la méthode de l’éclatement en groupe de 4

Conversion des nombres fractionnaires

Conversion d’un nombre fractionnaire en base 10 vers la base 2 par la méthode des puissances ou des additions successives

Conversion d’un nombre fractionnaire en base 10 vers la base 2 par la méthode de la division et de la multiplication successive

Conversion d’un nombre fractionnaire cyclique en base 10 vers la base 2 par la méthode de la division et de la multiplication successive

Conversion d’un nombre fractionnaire en base 10 vers la base 8 par la méthode des puissances ou des additions successives

Conversion d’un nombre fractionnaire en base 10 vers la base 8 par la méthode de la division et de la multiplication successive

Conversion d’un nombre fractionnaire en base 10 vers la base 16 par la méthode des puissances ou des additions successives

Conversion d’un nombre fractionnaire en base 10 vers la base 16 par la méthode de la division et de la multiplication successive

Conversion d’un nombre fractionnaire en base 2 vers les base 8, 10 et 16

Conversion d’un nombre fractionnaire en base 8 vers les base 2, 10 et 16

Conversion d’un nombre fractionnaire en base 16 vers les base 2, 8, 10

4

Page 5: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Représentation des nombres fixes signés

La représentation des nombres en signe et module

La représentation des nombres au complément de B-1

Représentation des nombres au complément de B

Passage de la représentation d’un nombre au complément de B-1 à B

Représentation des nombres binaires signés

Représentation des nombres binaires au complément de 1

Représentation des nombres binaires au complément de 2

Représentation des nombres décimaux signés

Représentation des nombres décimaux au complément de 9

Représentation des nombres décimaux au complément de 10

Représentation des nombres octaux signés

Représentation des nombres octaux au complément de 7

Représentation des nombres octaux au complément de 8

Représentation des nombres hexadécimaux signés

Représentation des nombres hexadécimaux au complément de F

Représentation des nombres hexadécimaux au complément de 16

Représentation des nombres en virgule flottante5

Page 6: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Addition numérique

Addition binaire

Addition octale

Addition décimale

Addition hexadécimale

Soustraction numérique

Soustraction binaire utilisant le complément de 1

Soustraction binaire utilisant le complément de 2 et donnant un résultat positif

Soustraction binaire utilisant le complément de 2 et donnant un résultat positif avec l’emprunt à partir de la gauche

Soustraction binaire utilisant le complément de 2 et donnant un résultat négatif

Soustraction octale utilisant le complément de 8 et donnant un résultat positif

Soustraction octale donnant un résultat positif avec l’emprunt à partir de la gauche

Soustraction octale utilisant le complément de 8 et donnant un résultat négatif

Soustraction décimale utilisant le complément de 10 et donnant un résultat positif

Soustraction décimale donnant un résultat positif avec l’emprunt à partir de la gauche

Soustraction décimale utilisant le complément de 10 et donnant un résultat négatif

Soustraction hexadécimale utilisant le complément de 16 et donnant un résultat positif

Soustraction hexadécimale donnant un résultat positif avec l’emprunt à partir de la gauche

Soustraction hexadécimale utilisant le complément de 16 et donnant un résultat négatif

6

Page 7: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

La multiplication numérique

La multiplication binaire

La multiplication octale

La multiplication décimale

La multiplication hexadécimale

La division numérique

La division binaire

La division octale

La division décimale

La division hexadécimale

7

Page 8: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Les systèmes de numération

L’objet du codage analytique est de faire en sorte que les informations traitées les machines numériques, textes, nombre, sons,images, vidéos, objets, en l’occurrence par les ordinateurs, puissent être représentés en interne par une succession de chiffresbinaires. L’avantage du binaire réside dans sa simplicité, car n’utilisant que deux états qui sont symbolisés par 0 et 1.

Nous allons commencer l’apprentissage des systèmes de numération par la base décimale qui nous est très familière. C’estcette base que nous utilisons tous les jours dans tous les domaines. Que ce soit un relevé bancaire, une facture d’électricité, unbulletin de salaire, l’heure d’une montre, nous avons affaire à des nombres composés de 10 chiffres qui vont de 0 à 9.

Si nous prenons le nombre 1 234 567 890, il est composé des dix chiffres de la base décimale comme d’ailleurs les nombres2 469 135 780, 4 938 271 560, 6 172 839 450, 8 641 975 230, 9 876 543 120 . Ces nombres qui utilisent les mêmes chiffresn’ont pas cependant la même signification pour nous à cause de la place des mêmes chiffres qui les composent. Le nombre9 876 543 120 fait 8 fois le nombre 1 234 567 890.

En fait c’est la place, la position des chiffres qui déterminent sa valeur du nombre qu’ils composent d’où la notion de notationposition.

Un coefficient, une pondération affectée à chaque chiffre du nombre. Le 9 du nombre 1 234 567 890 vaut 90 tandis que 9 dunombre 6 172 839 450 vaut 9 000, le 9 du nombre 9 876 543 120 vaut 9 milliards.

Si la valeur des chiffres diffère suivant leur position, c’est que chaque système possède une base et c’est la base et la positionqui déterminent la valeur d’un chiffre.

Pour la base 10 ou décimale, le chiffre le plus à droite doit être multiplié par 1 (100), et les chiffres qui suivent de la droite vers lagauche sont respectivement multipliés par 10 (101), 100 (102), 1000 (103), 10 000 (103) ect..

8

Page 9: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Les systèmes de numérationLes systèmes numériques complexes comme les ordinateurs utilisent une base plus simple, la base 2 qui

n’emploie que deux chiffres le 1 et le 0. Quand nous prenons un nombre 11001 de la base 2 nous pouvons avec

le même raisonnement dire que le « 1 » qui se trouve tout à fait à droite vaut 1x20, les autres chiffres qui suivent

vers la gauche sont respectivement multipliés par 21, 22, 23, 24. Le 1 qui est tout à gauche vaut 1x24= 16 et celui

qui est tout à droite vaut 1x20= 1

En dehors de ces 2 systèmes, le décimal et le binaire, nous avons d’autres systèmes comme le système quinaire

(base 5), utilisé couramment en Afrique. Pour comptage en wolof part de 1 à 5 pour ensuite ajouter 1 à 5 pour

faire 6, 2 à 5 pour faire 7 jusqu’à 10. En réalité, le comptage en wolof n’est pas totalement une base 5 car ne

prenant pas en compte le zéro, mais aussi utilisant 5 qui est décrite comme la base.

Le système sénaire (base 6), le systèmes octal (8), les systèmes duodécimal (base 12) qui donne l’avantage de

la divisibilité par 1, 2, 3, 4 et 6, le système hexadécimal (base 16), le systèmes vigésimal (base 20) et le système

sexagésimal (base 60).

Parmi ces multiples base , nous allons axer notre étude sur les base 2, 8, 10 et 16 9

Page 10: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Représentation polynomiale d’une nombre

La signification d’un nombre en notation positionnelle dépend de sa base. En informatique nous sommes

intéressés essentiellement par quatre bases :

la base 2 qui est la base par des microprocesseurs,

la base 10 qui est notre base par défaut

et les bases 8 et 16 qui sont des multiples de 2 et qui nous aident à représenter les nombres de façon plus

conviviale.

Dans ce chapitre, nous allons étudier comment représenter un nombre dans ces quatre bases et comment

passer d’une base à une autre, en somme comment faire la conversion entre bases.

Nous allons travailler avec les nombres à virgule fixe et les nombres à virgule flottante.

Si nous prenons le nombre 14 ¾, en virgule fixe, il peut s’écrire 14.75, mais en virgule flottante, il peut s’écrire

de plusieurs façons suivant la place de la virgule. Ainsi nous pouvons en virgule flottante écrire 14 ¾ comme

suit : 0.1475 102, 1.475 101, 1475 10-2, etc. 10

Page 11: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Représentation polynomiale d’une nombre

De manière générale tout nombre N de base b et de signe S en virgule fixe s’écrit en représentation polynomiale

(N)B = S(dnbn + dn-1bn-1 +….. d1b

1 + d0b0 + d-1b

-1 +….. d-kb-k )B

S est signe du nombre,

di est le symbole (chiffre) de rang i, di∈ N et 0 ≤ di ≤ (B-1)B

dn est le symbole de poids le plus fort (MSB=Most Significant Bit) et

d-k est le symbole de poids le plus faible (LSB = Least Significant Bit)

En numérotation positionnelle, le nombre (N)B s’écrit (N)B = S(dn-1 dn-2 …d1 d0 . d-1 d-2 …d-k)B, avec di∈ N et 0 ≤ di ≤ (B-1)B

dn-1 dn-2 …d1 d0 représente la partie entière et d-1 d-2 …d-k représente la partie fractionnaire.

L’écart entre le nombre représentable le plus grand dans une base et le nombre le plus petit constitue son amplitude ou sa dynamique. Enbase 10 si nous voulons représenter un nombre sur 3 positions, le nombre le plus grand sera 999 et le plus petit 000, son amplitude est de999-000 = 999. En base 2 en 3 positions, le nombre le plus grand est 111 (7) et le plus petit 000(0).

La précision ou la résolution quant à elle définit la différence entre deux nombres consécutifs. Elle est de 1 pour les 4 bases que nous allons étudier.

11

Page 12: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

(N)10 = S(cn-1.Bn-1+ cn-2.B

n-2+….c1.B1+ c0B

0 . c-1.B-1+…..c-k.B

k)10

(N)8 = S(cn-1.Bn-1+ cn-2.B

n-2+….c1.B1+ c0B

0 .c-1.B-1+…..c-k.B

k)8

(N)16 = S(cn-1.Bn-1+ cn-2.B

n-2+….c1.B1+ c0B

0 .c-1.B-1+…..c-k.B

k)16

(N)2 = S(cn-1.Bn-1+ cn-2.B

n-2+….c1.B1+ c0B

0. c-1.B-1+…..c-k.B

k)2

S est le signe, la partie à gauche du point est la partie entiére et celle qui est à droite du point est la partie fractionnaire

(N)B = S ciBi

0 ≤ ci ≤ (B-1)B 12

Page 13: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

• (N)10 = S(cn-1.10n-1 + cn-2.10n-2 +…. c1. 101 + c0100 . c-1.10-1 +….. c-k. 10-k)10

• (N)8 = S(cn-1. 8n-1 + cn-2. 8n-2 +…. c1. 81 + c080 . c-1. 8-1 +….. c-k. 8-k)8

• (N)16 = S(cn-1.16n-1 + cn-2. 16n-2 +…. c1. 161 + c0160 . c-1. 16-1 +….. c-k. 16-k)16

• (N)2 = S(cn-1.2n-1 + cn-2. 2n-2 +…. c1. 21 + c02

0 . c-1. 2-1 +….. c-k. 2-k)2

S est le signe, la partie à gauche du point est la partie entière et celle qui est à droite du point est la

partie fractionnaire. A noter que 100 = 80 = 160 = 20 = 1

• Pour la base 10, les chiffres utilisés vont de 0 à 9 (B-1) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

• Pour la base 8, les chiffres utilisés vont de 0 à 7 (B-1) : 0, 1, 2, 3, 4, 5, 6, 7

• Pour la base 2, les chiffres vont de 0 à 1 (B-1) : 0, 1

• Pour la base 16 ou h, les chiffres vont de 0 à 15 (B-1) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 10, 11, 12, 13, 14 et 15, n’étant pas des chiffres, sont remplacés respectivement par A, B, C, D, E, F

13

Page 14: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

14

Conversion d’un nombre entier en base 10 vers les autres bases (2, 8, 16)

Pour convertir un nombre entier en base 10 vers un nombre en base B (2, 8 ou 16) nous pouvons utiliser l’une des trois

méthodes suivantes :

La méthode d’élévation des puissances de la base qui consiste à élever les puissances de B (2, 8 ou 16) de droite à

gauche, commençant par B0 (20, 80 ou 160) jusqu’à l’obtention d’un nombre supérieur ou égal au nombre que nous voulons

convertir. Cette méthode est la courante et la plus utilisée et se fait en 3 étapes :

1. Élever les puissances de la base de destination de la droite vers la gauche à partir de B0 (20, 80 ou 160)

2. S’arrêter si l’une des puissances de B (2, 8 ou 16) devient égale ou supérieur au nombre décimale à convertir

3. Chercher l’unique combinaison qui donne le nombre à convertir.

4. On mettra 0 au dessous des puissances non utilisés et le coefficient au dessus des puissances utilisées.

La méthode des divisons successives qui consiste à diviser le nombre en base 10 par la base B (2, 8 ou 16) . Le premier

reste de cette division qui ne peut être que compris entre 0 et B-1 va constituer le bit le moins significatif (LSB) du nombre

de la base d’arrivée que nous voulons trouver. Ensuite, nous divisons le résultats obtenu par B, ainsi de suite jusqu’à ce

que l’on est plus rien à diviser. Le derniers reste sera le bit le plus significatif (MSB) du nombre de la base d’arrivée (2, 8

ou 16) que nous cherchons. Les restes des divisions intermédiaires seront entre le LSB et le MSB.

La méthodes des soustractions successives. Cette méthode ressemble un peu à la première et ne peut d’ailleurs se

faire sans elle. Les puissances successives de la base B (2, 8 ou 16) doivent être connues. Le nombre à convertir doit être

soustrait de la puissance la plus élevée et le reste par les puissances suivantes.

Page 15: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

15

Conversion d’un nombre décimal en base 2 avec la méthode des puissances

1. Élever les puissances de 2 de droite à gauche en commençant par 20

2. S’arrêter si l’une des puissances de 2 devient égale ou supérieur au nombre décimale à convertir

3. Chercher l’unique combinaison qui donne le nombre à convertir.

4. On mettra 0 au dessus des puissances non utilisés et 1 au dessous des puissances utilisées.

Prenons 12510 que nous voulons convertir en base 2. La base de départ étant 10 et la base de destination 2, nous allons,

à partir de la droite, aligner les puissances de 2 en commençant par 20 jusqu’à obtenir un nombre supérieur ou égal à

125 avant de nous arrêter.

27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 1

Nous nous arrêtons à 27 qui est égale à 128 et donc supérieur ou égale au 125 que nous voulons convertir

Il ne nous reste qu’à chercher les nombres qu’il faut additionner pour trouver 125. En bas des puissances utilisées, nous

allons mettre 1, et en bas des puissances non utilisées nous allons mettre 0.

27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 1

1 1 1 1 1 0 1

125 = (1x64) + (1x32) +(1x16) +(1x8) + (1x4)+ (0x2) +(1x1) Cette combinaison est unique

12510 = 11111012

Page 16: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

16

Conversion d’un nombre décimal en binaire avec méthodes des divisions successives

Prenons le nombre décimal 235 que nous voulons convertir en binaire.

La méthode des divisons successives qui consiste à diviser 235 par 2 . Le premier reste de cette division qui ne peut être compris qu’entre 0

et 1, les symbole de la base 2, va constituer le bit le moins significatif (LSB) du nombre en base 2 que nous voulons trouver. Ensuite, nous

divisons le résultat obtenu 117 par 2, ainsi de suite jusqu’à ce que l’on est plus rien à diviser. Le derniers reste sera le bit le plus significatif

(MSB) du nombre en base 2 que nous cherchons. Les restes des divisions intermédiaires seront entre le LSB et le MSB.

235 : 2 = 117 premier reste 1 (LSB)

117 : 2 = 58 deuxième reste 1

58 : 2 = 29 troisième reste 0

29 : 2 = 14 quatrième reste 1

14 : 2 = 7 cinquième reste 0

7 : 2 = 3 sixième reste 1

3 : 2 = 1 septième reste 1

1 : 2 = 0 dernier reste 1 (MSB)

1 1 1 0 1 0 1 1 = 23510On commence par mettre le LSB à droite, ensuite le deuxième reste, le dernier reste (MSB) est à droite du nombre en base 2

Page 17: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

17

Conversion d’un nombre décimal en binaire avec la méthode des soustractions successives

Cette méthode est une dérivée de la méthode des puissances et ne peut d’ailleurs se faire sans elle. Les puissances

successives de la base 2 doivent être connues. Le nombre à convertir doit être soustrait de la puissance la plus élevée et le

reste des puissances suivantes.

Prenons 23510 que nous voulons convertir en base 2. La base de départ étant 10 et la base de destination 2, nous allons

chercher les puissances de 2 jusqu’à obtenir un nombre supérieur ou égal à 125 avant de nous arrêter.

28 27 26 25 24 23 22 21 20

256 128 64 32 16 8 4 2 1

Nous nous arrêtons à 28 qui est égale à 256 et donc supérieur ou égale au 235 que nous voulons convertir

Nous allons ensuite soustraire 27 (128) de 235 qui donne 107. Nous allons soustraire 26 (64) de 107 qui donne 43, ensuite 25

(32) de 43 … jusqu’à 20 (1) de 1 qui donne 0.

En bas des puissance de 2 utilisées nous allons mettre 1, et en bas des nombres non utilisés nous allons mettre 0.

28 27 26 25 24 23 22 21 20

256 128 64 32 16 8 4 2 1

235-128 = 107 107-64=43 43-32=11 11-8=3 3-2=1 1-1=0

1 1 1 0 1 0 1 123510 = 111010112

Page 18: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

18

Conversion d’un nombre décimal en nombre octal par la méthode des puissances

Prenons 12510 que nous voulons convertir en base 8.

1. Élever les puissances de 8 de droite à gauche en commençant par 80

2. S’arrêter si l’une des puissances de 8 devient égale ou supérieur au nombre décimale à convertir

3. Chercher l’unique combinaison qui donne le nombre à convertir.

4. On mettra 1,2,3,4, 5,6 ou 7 suivant le nombre de fois qu’ils sont utilisés et 0 si la puissance n’est pas utilisée.

83 82 81 80

512 64 8 1

Nous nous arrêtons à 83 qui est égale à 512 et donc supérieur ou égale au 125 que nous voulons convertir

Il ne nous reste qu’à chercher la combinaison unique, les nombres qu’il faut additionner pour trouver 125.

83 82 81 80

512 64 8 1

125 = (1x64) + (7x8) + (5x1)

12510 = 1758

Page 19: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre décimal en octal par la méthodes des divisions successives

Prenons le nombre décimal 249 que nous voulons convertir en octal avec la méthode des divisons successives.

Nous allons diviser 249 par 8 . Le premier reste de cette division qui ne peut être 0, 1, 2, 3, 4, 5, 6 ou 7, les symbole de la base 8, va

constituer le bit le moins significatif (LSB) du nombre en base 8 que nous voulons trouver. Ensuite, nous divisons le résultat obtenu 31

par 8 qui nous donne 3 avec 7 comme reste. 3 sera ensuite divisé par 8 et va donner 0 et 3 comme reste. Ce dernier reste sera le bit le

plus significatif (MSB) du nombre en base 8 que nous cherchons. Les restes des divisions intermédiaires seront entre le LSB et le MSB.

249 : 8 = 31 premier reste 1 (LSB)

31 : 8 = 3 deuxième reste 7

3 : 8 = 0 dernier reste 3 (MSB)

1 7 3 = 24910

On commence par mettre le LSB à droite, ensuite le deuxième reste, le dernier reste (MSB) est à droite du nombre en base 8

Il est possible de chercher les restes en multipliant la partie fractionnaire du resultat par la base 8

249/8 = 31.125 la partie entière est 31 et la partie décimale est .125 que nous multiplions par 8 pour trouver le reste en octal .125 x 8 donne 1

31/8 = 3.875 la partie entière est 3 et la partie décimale est .875 que nous multiplions par 8 pour trouver le reste en octal .875 x 8 donne 7

3/8 = 0.375 la partie entière est 0 et la partie décimale est .375 que nous multiplions par 8 pour trouver le reste en octal .375 x 8 donne 3 19

Page 20: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre décimal en nombre hexadécimal par la méthode des puissances

Prenons 12510 que nous voulons convertir en base 16.

1. Élever les puissances de 16 de droite à gauche en commençant par 160

2. S’arrêter si l’une des puissances de 16 devient égale ou supérieur à 125

3. Chercher l’unique combinaison qui donne 125

4. On mettra 1,2,3,4, 5,6,7,8,9,A,B,C,D,E,F suivant le nombre de fois qu’ils sont utilisés et 0 si la puissance n’est pas utilisée.

162 161 160

256 16 1

Nous nous arrêtons à 162 qui est égale à 256 et donc supérieur ou égale au 125 que nous voulons convertir.

Il ne nous reste qu’à chercher la combinaison uniques, les nombres qu’il faut additionner pour trouver 125.

162 161 160

256 16 1

(7x16) + (13x1)

13 devra être remplacé par la lettre D qui est son équivalent . 125 = (7x16) + (Dx1 = 7D16

20

Page 21: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre décimal en hexadécimal par la méthodes des divisions successives

Prenons le nombre décimal 476 que nous voulons convertir en hexadécimal avec la méthode des divisons

successives. Nous allons diviser 476 par 16 . Le premier reste de cette division qui ne peut être que 0, 1, 2, 3, 4, 5, 6

7, 8, 9, A, B, C, D, E et F les symbole de la base 16, va constituer le bit le moins significatif (LSB) du nombre en base

16 que nous voulons trouver. Ensuite, nous divisons le résultat obtenu 29 par 16 qui nous donne 1 avec 13 comme

reste. 1 sera ensuite divisé par 16 et va donner 0 et 1 comme reste. Ce dernier reste sera le bit le plus significatif (MSB)

du nombre en base 16 que nous cherchons. Les restes des divisions intermédiaires seront entre le LSB et le MSB.

476 : 16 = 29 premier reste 12 (C) (LSB)

29 : 16 = 1 deuxième reste 13 (D)

1 : 16 = 0 dernier reste 1 (MSB)

1 D C = 47610

Il est possible de chercher les restes en multipliant la partie fractionnaire du résultat par la base 16

476/16 = 29.75 la partie entière est 29 et la partie décimale est .75 que nous multiplions par 16 pour trouver le reste en hexadécimal .75 x 16 donne 12 (C)

29/16 = 1.8125 la partie entière est 1 et la partie décimale est .8125 que nous multiplions par 16 pour trouver le reste en hexadécimal .8125 x 16 donne 13 (D)

1/16 = 0.0625 la partie entière est 0 et la partie décimale est .0625 que nous multiplions par 16 pour trouver le reste en hexadécimal .0625 x 16 donne 1 21

Page 22: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 2 vers les autres bases

Il y a trois méthodes pour passer de la base 2 vers les autres bases (10, 8 et 16).

La première méthode applicable à la conversion de la base 2 vers la base 10 est la méthode dite des additions qui consiste à :

1. écrire le nombre en base 2 et aligner les puissance de la base 2 au dessus du nombre binaire.

2. procéder à la multiplication des puissances de la base 2 par les nombres de la base 2 qui sont au dessus.

3. additionner les résultats issus des multiplications.

La deuxième méthode, celle du regroupement, s’applique aux base 8 et 16 qui sont des puissances de 2. Elle consiste à regrouper à

partir de la gauche les chiffres de la base 2 par 3 ou 4 suivant qu’il s’agisse de les convertir en octal ou en hexadécimal.

Le troisième méthode consiste à passer par une base intermédiaire.

1. Convertir le nombre binaire en décimal par la méthode des additions, puis le convertir en octal ou en hexadécimal

2. Convertir le nombre binaire en octal ou en hexadécimal par la méthode des regroupement, puis le convertir en décimal

22

Page 23: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 2 vers la base 10 par la méthode des additions

Pour convertir un nombre binaire en décimal, nous alignons sous le nombre binaire les puissances de 2, ensuite nous nous procédons à

la multiplication et à l’addition des résultats trouvés.

11111012 à convertir en en base 10

1 1 1 1 1 0 1

26 25 24 23 22 21 20

64 32 16 8 4 2 1

(64x1) + (32x1) + (16x1) + (8x1) + (4x1) + (2x0) + (1x1)

64 + 32 + 16 + 8 + 4 + 0 + 1 = 12510

23

Page 24: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 2 à la base 8 par la méthode des regroupements

Nous savons que 8 = 23. Si nous avons un nombre décimal déjà converti en base 2 que nous pouvons le convertir directement en

base 8 sans passer par la méthode des puissances, il nous suffit simplement de faire des regroupements par 3.

Si nous voulons convertir 12510 en octal, nous allons prendre la conversion binaire de 125 et nous allons procéder aux

regroupements de 3 à partir de la gauche. Si le groupe le plus à droite ne fait pas trois, nous allons le compléter par des 0 non

significatifs.

12510 = 11111012

12510 = 0 0 1 1 1 1 1 0 122 21 20 22 21 20 22 21 20

4 2 1 4 2 1 4 2 1

1 7 5824

Page 25: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 2 à la base 16 en utilisant la méthode des regroupements

Si nous voulons convertir 12510 en hexadécimal, nous allons prendre la conversion binaire de 125 et nous allons

procéder aux regroupements de 4 à partir de la gauche. Si le groupe le plus à droite ne fait pas quatre, nous allons le

compléter par des 0 non significatifs.

12510 = 11111012

12510 = 0 1 1 1 1 1 0 123 22 21 20 23 22 21 20

8 4 2 1 8 4 2 1

7 13

7 D16 25

Page 26: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 2 à la base 8 via la base 10

Si nous voulons convertir 11111012 en base 8, nous

pensons toute de suite le faire par la méthode du

regroupement qui est plus facile et plus directe, mais nous

avons aussi la possibilité de convertir ce nombre en base

10 avant de le convertir en base 8 par la méthode dite des

additions.

11111012 =12510

Pour convertir 12510 en base 8, nous cherchons les

puissance de 8 à partir de 80 jusqu’à obtenir un nombre

supérieur ou égal au 125 que nous voulons convertir.

83 82 81 80

512 64 8 1

1 7 5

11111012 =12510 =1758

26

Conversion de la base 2 à la base 16 via la base 10

Si nous voulons convertir 11111012 en base 16, nous

pensons toute de suite le faire par la méthode du

regroupement qui est plus facile et plus directe, mais nous

avons aussi la possibilité de convertir ce nombre en base

10 avant de le convertir en base 8 par la méthode dite des

additions.

11111012 =12510

Pour convertir 12510 en base 16, nous cherchons les

puissance de 16 à partir de 160 jusqu’à obtenir un nombre

supérieur ou égal au 125 que nous voulons convertir.

162 161 160

256 16 1

7 13(D)

11111012 =12510 =1Dh

Page 27: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 8 à la base 10 par la

méthode des additions

Pour convertir un nombre octal en décimal, nous

alignons sous le nombre octal les puissances de

8, ensuite nous nous procédons à la

multiplication et à l’addition des résultats

trouvés.

1758 à convertir en en base 10

1 7 5

82 81 80

64 8 1

(64x1) + (8x7) + (1x5)

64+ 56+ 5 = 12510

1758 = 12510

27

Conversion de la base 8 à la base 2 par l’éclatement

8 étant une puissance de 2, comme pour le

regroupement par 3 qui nous a permis de passer de la

base 2 à la base 8, pour passer de la base 8 à la base 2,

nous pouvons procéder à un éclatement ou

dégroupement de chaque élément de la base 8 en 3

chiffres binaires.

Prenons 1758 que nous voulons convertir en base 2.

Nous allons chercher séparément les équivalents binaire

de 1, de 7 et de 5

1 7 5

001 111 101

1758 = 001111101 = 1111101

Page 28: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

28

Conversion de la base 8 à la base 16 via la base 10

Nous ne pouvons pas convertir directement un nombre

base 8 en base 16. Il nous faut passer par une base

intermédiaire 2 ou 10.

1758 à convertir en en base 16 via la base 10

1 7 5

82 81 80

64 8 1

(64x1) + (8x7) + (1x5)

64 + 56 + 5 = 12510

Nous allons ensuite convertir 12510 en hexadécimal en

élevant les puissance de 16 à partir de la droite en

commençant par 160 jusqu’à obtenir un nombre

supérieur ou égale à 125 avant de nous arrêter.

162 161 160

256 16 1

7 D

1758 = 12510 = 7Dh

Conversion de la base 8 à la base 16 via la base 2

Nous ne pouvons pas convertir directement un nombre

base 8 en base 16. Il nous faut passer par une base

intermédiaire 2 ou 10.

Prenons 1758 que nous voulons convertir en base 16

via la base 2. Nous allons chercher séparément les

équivalents binaire de 1, de 7 et de 5

1 7 5

001 111 101

1758 = 001111101 = 1111101

Dans un deuxième temps nous allons prendre la

version binaire que nous allons regrouper par 4 pour

avoir l’équivalent hexadécimal

0 1 1 1 1 1 0 1

8 4 2 1 8 4 2 1

7 D

1758 = 1111101 = 7Dh

Page 29: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion de la base 16 vers les autres bases

Il y a trois méthodes pour passer de la base 16 vers les autres bases (2, 8 et 10).

La première méthode applicable à la conversion de la base 16 vers la base 10 est la méthode dite des additions qui

consiste à :

1. écrire le nombre en base 16 et aligner les puissance de la base 16 au dessous.

2. procéder à la multiplication des puissances de la base 16 par les chiffres hexadécimaux qui sont au dessus.

3. additionner les résultats issus des multiplications.

La deuxième méthode, applicable à la base 2 est celle de l’éclatement séparée des chiffres hexadécimaux en groupe de

4 symboles binaires.

La troisième méthode consiste à passer par une base intermédiaire.

1. Convertir le nombre hexadécimal en binaire par éclatement et les regrouper par 3 pour avoir la version octal.

2. Convertir le nombre en base 10 et passer vers la base 8 et 229

Page 30: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

30

Conversion de la base 16 vers la base 10 et 8

Pour convertir un nombre hexadécimal en décimal, nous

alignons sous le nombre hexadécimal les puissances de

16, ensuite nous nous procédons à la multiplication et à

l’addition des résultats trouvés.

7D16 à convertir en en base 10

7 D

161 160

16 1

(16x7) + (1x13)

112 + 13 = 12510

7D16 =12510

12510 peut ensuite être converti en base 8 avec la

méthode des puissances

83 82 81 80

512 64 8 1

1 7 5

7Dh = 1758

Conversion de la base 16 vers la base 2 et 8

16 étant une puissance de 2, pour convertir un nombre

hexadécimal en base, nous procédons par la méthode de

l’éclatement.

7D16 à convertir en en base 2

7 D(13)8 4 2 1 8 4 2 1

0 1 1 1 1 1 0 1

7D = 1111101

La version binaire peut être convertie en octal par

regroupent de 3

7D = 1111101 = 001 111 101

1 7 5

7Dh = 11111012 = 1758

Page 31: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre fractionnaire

Jusqu’à présent nous avons converti des nombres entiers. Nous allons maintenant convertir des nombres fractionnaires.

Rappel. Tout nombre N de base B avec un signe S en virgule fixe peut s’inscrire

(N)B = S(dn-1 dn-2 …d1 d0 , d-1 d-2 …d-k)BAvec 0 <= di <= (B-1)

La méthode est la même mais à droite de la virgule, nous avons des puissances négatives

Si nous voulons convertir 125,510 en binaire, nous allons élever les puissances de de 2 positive à gauche de la

virgule et les puissances de 2 négative à droite de la virgule

27 26 25 24 23 22 21 20 , 2-1 2-2 2-3 -4

128 64 32 16 8 4 2 1 , 0,5 0,25 0,125 0,0625

1 1 1 1 1 0 1 , 1

125,510 = 1 1 1 1 1 0 1,1

31

Page 32: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre décimal fractionnaire vers les autres bases par la méthode des puissances

Pour convertir 125,510 en binaire, il faut élever les puissances positives de 2 à gauche de la virgule et les puissances négatives de 2 à droite.

27 26 25 24 23 22 21 20 , 2-1 2-2 2-3 2-4

128 64 32 16 8 4 2 1 , 0,5 0,25 0,125 0,0625

1 1 1 1 1 0 1 , 1

125,510 = 1 1 1 1 1 0 1,1

Pour convertir 125,510 en octal, il faut élever les puissances positives de 8 à gauche de la virgule et les puissances négatives de 8 à droite.

83 82 81 80 , 8-1 8-2 8-3

512 64 8 1 , 0,125 0,015625 0,001953125

1 7 5 , 4

125,510 = 175,4

Pour convertir 125,510 en hexadécimal, il faut élever les puissances positives de 16 à gauche de la virgule et les puissances négatives de 16 à droite.

163 162 161 160 , 16-1 16-2 16-3

4096 256 16 1 , 0,0625 0,00390625 0,000244140625

7 D , 8

125,510 = 7D,8

32

Page 33: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre fractionnaire binaire vers les autres bases

Pour convertir 1111101,101 en décimal, il faut mettre le nombre binaire en haut et les puissance de 2 en bas, faire la multiplication plus l’addition

1 1 1 1 1 0 1 , 1 0 1

26 25 24 23 22 21 20 , 2-1 2-2 2-3

64 + 32 + 16 + 8 + 4 + 0 + 1 , 0,5 + 0 + 0,125

1 1 1 1 1 0 1,1 0 1 = 125,625

Pour convertir 1111101,101 en octal, il faut faire des regroupements par 3

1 111 101 , 101

1 7 5 , 5 1111101,101 = 175,58

Pour convertir 1111101,101 en hexadécimal, il faut faire des regroupements par 4

0111 1101 , 10107 D , A

NB. Pour les regroupements de la partie entière, il faut partir du LSB vers le MSB. A partir de la virgule vers la gauche.

Les zéros non significatifs pour compléter le groupe sont à gauche.

Pour les regroupements de la partie fractionnaire, il faut partir du MSB vers le LSB. A partir de la virgule vers la droite.

Les zéros non significatifs pour compléter le groupe sont à droite.

33

Page 34: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre fractionnaire octal vers les autres bases

Pour convertir 175,48 en décimal, il faut mettre les puissance de 8 sous le nombre octal, faire la multiplication puis l’addition

1 7 5 , 4

82 81 80 , 8-1

64*1=64 + 8*7=56 + 1*5=1 , 0,125 *4=0,5 175,48 = 125,510

Pour convertir 175,48 en binaire, il faut éclater 1, 7, 5 et 4 en groupe de 3 en tenant compte de la virgule. Les 0 du début de la partie entière ne

comptent pas de même que les 0 de fin de la partie fractionnaire.

1 7 5 , 4

001 111 101 , 100 175,48 =1111101 ,1

Pour convertir 175,48 en hexadécimal, il faut éclater 1, 7, 5 et 4 en groupe de 3 en tenant compte de la virgule pour avoir le binaire qui sera ensuite

regroupé en 4 pour avoir l’héxadécimal.

175,48 =1111101,1 0111 1101 , 1000

7 D , 8

175,48 = 125,510 =1111101,12 = 7D,8h34

Page 35: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Conversion d’un nombre fractionnaire hexadécimal vers les autres bases

Pour convertir 7D,8h en décimal, il faut mettre les puissance de 16 sous le nombre hexadécimal, faire la multiplication puis l’addition

7 D , 8

161 160 , 16-1

16*7=112 + 1*13=13(D) , 0,0625 *8=0,5 7D,8h = 125,510

Pour convertir 7D,8h en binaire, il faut éclater 7, D, et 8 en groupe de 4 en tenant compte de la virgule.

7 D , 8

0111 1101 , 1000 7D,8h = 1111101,1

Pour convertir 7D,8h en octal, il faut éclater 7, D, et 8 en groupe de 4 en tenant compte de la virgule pour avoir le binaire qui sera ensuite regroupé en 3

pour avoir l’octal.

7D,8h = 1111101,1 001 111 101 , 100

1 7 5 , 4

7D,8h =175,48 = 125,510 =1111101,12

35

Page 36: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

36

2 2

58 2

0 29 2

Reste 1 14 2 MSB

LSB Reste 0 7 2

Reste 1 3 2 LSB

Reste 1 1 2

Reste 1 0

Reste

MSB

58 base 10 = 1 1 1 0 1 0 base 10 1 0 1

1 1 1 0 1 0 . 1 0 1

0,625

0,5 2 1 0

Partie

fractionnaire

du produit

1 0,25

0,25 2 0 0,5

Conversion d'un nombre fractionnaire 58.625

Conversion de la partie entiere d'un nombre base 10 en base Conversion de la partie fractionnaire d'un nombre base 10 en base

0,625

Multiplicande

Partie

fractionnaire

2

multiplicateur

(Base)

Partie entière

du produit

Conversion d’un nombre décimal fractionnaire

en binaire par la méthode des divisions et des

multiplications successives

Pour convertir un nombre factionnaire, il

faut :

1. convertir la partie entière du nombre en

utilisant la méthode des divisions

successives du nombre par la base.

LSB en haut et MSB en bas.

1. Convertir la partie fractionnaire en la

multipliant par la base et en séparant la

partie entière du produit à la partie

fractionnaire du produit. Cette dernière

partie sera encore multipliée par la base

jusqu’à ce qu’on trouve 0. Cette fois-ci,

le MSB se trouve en haut et le LSB en

bas.

Page 37: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

37

Conversion d’un nombre fractionnaire

cyclique

Pour la partie fractionnaire, il nous arrive

de ne pas trouver 0 après plusieurs

multiplications. Ceci est du essentiellement

au fait que le nombre à convertir n’a pas un

équivalent exacte dans la base choisie (B)

et sa partie fractionnaire est cyclique.

Vous remarquerez qu’un groupe de nombre

se répète à l’infini. Dans ce cas, nous

disons que le nombre à convertir est

cyclique dans la base B de période « les

groupes de nombres qui se répètent »

Dans ce cas, le nombre 58.15 est cyclique

dans la base 2 de période 1001

2 2

58 2

0 29 2

Reste 1 14 2 MSB

LSB Reste 0 7 2

Reste 1 3 2

Reste 1 1 2

Reste 1 0

Reste

MSB

LSB

58 base 10 = 1 1 1 0 1 0 base 10 0 0 1

1 1 1 0 1 0 . 0 0 1 0 0 1 1 0 0 1

0,6 2 1 0,2

0,4 2 0 0,8

0,8 2 1 0,6

0,6 2 1 0,2

0,2 2 0 0,4

2 0 0,8

0,8 2 1 0,6

0,6 2 1 0,2

0,15

0,2 2 0 0,4

0,4

0,15 2 0 0,3

0,3 2 0 0,6

Conversion d'un nombre fractionnaire 58.15

Conversion de la partie entiere d'un nombre base 10 en base Conversion de la partie fractionnaire d'un nombre base 10 en base

Multiplicande

Partie

fractionnaire

multiplicateur

(Base)

Partie entière

du produit

Partie

fractionnaire

du produit

Page 38: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

38

Tableau des puissances des bases de 10 à -1010

9

8

7

6

5

4

3

2

1

0

-1

-2

-3

-4

-5

-6

-7

-8

-9

-10

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

1 024

512

256

128

64

32

16

8

4

2

1

0,5

0,25

0,125

0,0625

0,03125

0,015625

0,0078125

0,00390625

0,00195313

0,00097656

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

1 073 741 824

134 217 728

16 777 216

2 097 152

262 144

32 768

4 096

512

64

8

1

0,125

0,015625

0,001953125

0,000244140625

0,000030517578125

0,000003814697265625

0,000000476837158203125

0,0000000596046447753906

0,00000000745058059692383

0,000000000931322574615479

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10 000 000 000

1 000 000 000

100 000 000

10 000 000

1 000 000

100 000

10 000

1 000

100

10

1

0,1

0,01

0,001

0,0001

0,00001

0,000001

0,0000001

0,00000001

0,000000001

0,0000000001

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

16

1 099 511 627 776

68 719 476 736

4 294 967 296

268 435 456

16 777 216

1 048 576

65 536

4 096

256

16

1

0,0625

0,00390625

0,000244141

0,0000152587890625

0,00000095367431640625

0,0000000596046447753906

0,00000000372529029846191

0,00000000023283064365387

0,0000000000145519152283669

0,000000000000909494701772928

10

9

8

7

6

5

4

3

2

1

0

-1

-2

-3

-4

-5

-6

-7

-8

-9

-10

Page 39: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES OU CODAGE ANALYTIQUE

Conversion d’un nombre fractionnaire base 8 vers 10

125,1258 à convertir en en base 10

1 2 5 , 1 2 5

82 81 80 , 8-1 8-2 8-3

64 8 1 , 0,125 0,015625 0,001953125

64+ 16+ 5 , 0,125+ 0,03125+ 0,009765625

125,1258 = 85,1660156210

Conversion d’un nombre fractionnaire base 10 vers 8

85,1660156210 à convertir en base 8

82 81 80 , 8-1 8-2 8-3

64 8 1 , 0,125 0,015625 0,001953125

1 2 5 , 1 2 5

85,1660156210 =125,1258

39

Conversion d’un nombre fractionnaire en base 10 vers

16

125,0625 10 en hexadécimal

162 161 160 , 16-1 16-2

256 16 1 , 0,0625 0,00390625

7 D , 1

125,0625 10 =7D,116

125, 06640625 10 en hexadécimal

162 161 160 , 16-1 16-2

256 16 1 , 0,0625 0,00390625

7 D , 1 1

125,06640625 10 = 7D,1116

Page 40: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

ExercicesFaire les conversions suivantes

Problèmes Solutions

A. 727 10 en octal 13278

B. 2803 10 en hexadécimal AF3

C. 0,101012 en base 10 0,6562510

D. 0,ABC en base 10 0,670810

E. 0,74210 en octal 0,57378

F. 0,432110 en hexadécimal 0,6E9E

G. 1254,173 10 en octal 2346,13048

H. A73,4F2 en octal 5163,23628

I. 127,7510 en binaire 1111111,112

J. 307,1810 en binaire 100110011,00101112

K. 3AF2 en décimal 1509010

L. 10110112 en décimal 9110

M. 1254,173 10 en binaire 10 011 100 110.001 011 000 12

N. 0,711 8 en décimal 0,89210

O. 7428 en décimal 48210

P. 742.711 8 en décimal 482.8928 40

Page 41: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Bibliographie

41

Page 42: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Représentation des nombres signés

Jusqu’à présent nous avons travaillé avec les nombres positifs. Dans ce chapitre, nous allons étudier les 3 méthodes

les plus utilisées pour la représentation des nombres négatifs : La représentation en signe et valeur absolue, la

représentation au complément logique ou restreint (complément à b-1) , la représentation au complément arithmétique

ou vrai (complément à b).

Nous sommes tous familiers à cette méthodes, car c’est elle que nous utilisons tous les jours. Elle est cependant

moins bien adaptée aux opérations arithmétiques. La représentation au complément logique et la représentation au

complément arithmétique sot plus simple à implémenter dans les machines.

Comme les symboles + et – occupent une place en machine , autant les remplacer de façon conventionnelle par 0 et

(B-1).

Le premier chiffre d’un nombre, sont chiffre de plus fort poids est considéré comme étant le signe, et le reste des

chiffres vont constituer le module, la valeur absolue du nombre.

A cause de notre familiarité avec la notation classique signe et valeur absolue, il nous arrive des fois des

représentations de nombres négatifs un peu bizarre. +72,3 base 10 devrait s’écrire 072,3 et le nombre +9,25 devrait

s’écrire 09,25. Nous avons tendance à dire que +72,3 est équivalent à 72,3 et +9,25 est équivalent à 9,25.

Dans le premier cas, nous pouvons considérer que le 0 non significatif est négligé, mais dans le second cas, nous

allons considérer 9,25 comme le nombre négatif -,25).

42

Page 43: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation en signe et valeur absolue (Sign and Magnitude)

Nous sommes tous familiers à cette méthodes, car c’est elle que nous utilisons tous les jours. Elle est cependant moins bien

adaptée aux opérations arithmétiques. Dans ce mode de représentation seul le signe change et le module reste constant.

Pour représenter un nombre en base B avec signe nous prenons conventionnellement 0 pour représenter le signe « + » et

(B-1) pour représenter le signe « - ». Cela nous permet d’ailleurs de garder les signes « + » et « – » pour l’ addition et la

soustraction. Le MSB représente le signe et les autres bits représentent la valeur absolue (module).

(N)B = S(dn-1 dn-2 …d1 d0 , d-1 d-2 …d-k)B

Avec 0 <= di <= (B-1)

Le nombre est positif si S=0 et négatif si S=(B-1)

En base 2, 0 donne le signe + et (2-1) =1 donne le signe – N = 0,10112 -N = 1,10112

En base 8, 0 donne le signe + et (8-1) =7 donne le signe – N = 03458 -N = 73458

En base 10, 0 donne le signe + et (10-1)=9 donne le signe – N = 034510 -N = 934510

En base 16, 0 donne le signe + et (16-1)=F donne le signe – N = 034516 -N = F34516

43

Page 44: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation en module et signe (Sign and Magnitude) d’un nombre binaire de n bits

Pour la représentation en module et signe, les nombres de n bits qu’on peut représenter vont

de – (2n-1-1) à + (2n-1-1)

Sur un format de 4 bits nous pouvons représenter les nombres allant de :

–(24-1 -1) à +(24-1 -1), –(23 -1) à +(23 -1), -7 à +7

-7 -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 +7

Un inconvénient majeur dans cette représentation est le 0 qui possède deux notations possibles

0000 et 1000.

L’extension d’un nombre codé sur n bits à un format n+k bits consiste à décaler le bit de signe à la

positon du MSB et à compléter les autres par 0. Cela peut s’appliquer sur les nombres positifs

comme sur les nombres négatifs.

+6 sur 4 bits s’écrit 0110 et sur 6 bits 000110

-6 sur 4 bits s’écrit 1110 et sur 6 bits 100110 44

N10 N2 -N2 -N10

0 0000 1000 0

1 0001 1001 -1

2 0010 1010 -2

3 0011 1011 -3

4 0100 1100 -4

5 0101 1101 -5

6 0110 1110 -6

7 0111 1111 -7

-(2n-1

-1) à + (2n-1

-1)

Page 45: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation en module et signe (Sign and Magnitude) de nombres en base 8, 10 et 16

(N)B = Sdn-2 …d1 d0 , d-1 d-2 …d-k)B , avec 0 <= di <= (B-1)

Pour la représentation en module et signe, les nombres de n bits qu’on peut représenter vont de

– (Bn-1-1) à + (Bn-1-1)

Les nombres décimaux de 3 bits vont de -99 à +99 (999, 998, 997……………902, 901, 900, 000, 001, 002, ……..…098, 099)

Les nombres octaux de 3 bits vont de -77 à + 77 (777, 776, 775, ……….….702, 701, 700, 000, 001, 002, ..…..….076, 077)

Les nombres hexadécimaux de 3 bits vont de -FF à + FF (FFF, FFE, FFD, …………F02, F01, F00, 000, 001, 002, ……….0FE, 0FF)

L’extension d’un nombre codé sur n bits à un format n+k bits consiste à décaler le bit de signe à la positon du MSB et à compléter les

autres par 0. Cela peut s’appliquer sur les nombres positifs comme sur les nombres négatifs.

+9810 sur 3 bits s’écrit 09810 et sur 6 bits 00009810 -9810 sur 3 bits s’écrit 99810 et sur 6 bits 90009810

+768 sur 3 bits s’écrit 0768 sur sur 6 bits 0000768 -768 sur 3 bits s’écrit 7768 sur sur 6 bits 7000768

+7616 sur 3 bits s’écrit 07616 sur sur 6 bits 00007616 -7616 sur 3 bits s’écrit F7616 sur sur 6 bits F0007616

45

Page 46: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation au complément restreint, de (B-1) (Diminish Radix) ou complément de 9,7,15,1

Si un nombre N de base B est composé de m chiffres dont la partie entière fait n chiffres, le signe inclus et une partie fractionnaire de k

chiffres, nous pouvons représenter ce nombre en notation complément de base moins un (B-1) comme suit :

(-N)B= (Bn)B - (N)B - (.1)kB

N =0123.4510 n=4, m=6 k=2

(-N)10 = (104)10 - (N)10 - (.1)210

(-N)10 = (10000.00)10 - (0123.45)10 - (0000.01)10 = (10000.00 - 0000.01)10 - (0123.45)10

(-N)10 = (9999.99)10 - (0123.45)10 = (9876.54)10

A noter que 0123.4510 + 9876.5410 = 9999.99

(N)B + (- (N)B) = (N)B + (Bn)B - (N)B - (.1)kB = (Bn)B - (.1)k

B = (10000.00 - 0000.01)10 = 9999.99 = (B-1)(B-1)(B-1)(B-1).(B-1)(B-1)

(N)B (-N)B (N)B (-N)B (Bn)B - (.1)kB

0143.2110 9856.7810 0143.2110 + 9856.7810 = 9999.99

7421.378 0356.408 7421.378 + 0356.408 = 7777.77

1010.112 0101.002 1010.112 + 0101.002 = 1111.11

FA43.0B16 05BC.F416 FA43.0B16 + 05BC.F416 = FFFF.FF

Les nombres qu’on peut représenter vont de – (2n-1-1) à + (2n-1-1)

46

Page 47: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation en complément de (B-1) ou restreint (Diminish

Radix) ou complément de 9,7,15,1

La représentation d’un nombre au complément de 1 pose le problème du

zéro qui à une double représentation.

+0 donne 0000. Le complément de 0 qui doit rester 0 s’écrit 1111. Nous

nous trouvons avec 0 qui s’écrit 0000 et 0 qui s’écrit 1111. Nous appelons

le premier zéro + 0 et le second zéro -0

S’il s’agit de la base 8, 10 et 16, nous rencontrons les mêmes problèmes.

En base 8, +0 s’écrit 0000 et son complément de 7 est 7777 qui est le -0

En base 10, + 0 s’écrit 0000 et son complément de 9 est 9999 qui est le -0

En base 16, +0 s’écrit 0000 et son complément e 15 est FFFF qui est –0

Pour éviter cette situation, bous allons représenter un nombre négatif par

le complément de B qui le complément de (B-1) plus 1.

47

N10 N2 N'2 -N10

0 0000 1111 0

1 0001 1110 -1

2 0010 1101 -2

3 0011 1100 -3

4 0100 1011 -4

5 0101 1010 -5

6 0110 1001 -6

7 0111 1000 -7

– (2n-1

-1) à + (2n-1

-1)

Page 48: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation Base (Radix) ou complément de 10, 8, 16, 2

La négation –N d’un nombre positif N est représentée en complément de B par la formule suivante:

(-N)B = (Bn)B - (N)BN est le nombre positif, n est le nombre de chiffre de la partie entière,

N =0123.45610 n=4, m=7

(-N)B= (104)10 - (0123.456)10

(-N)B= (10000.000)10 - (0123.456)10 = 9876.54410

A noter que 0123.45610 + 9876.54410 = 0000.000

(N)B + (- (N)B) = (N)B + (Bn)B - (N)B = (Bn)B = (1 0000.000 )10 = 0000.000 Le 1 de (Bn)B est un débordement (overflow) à ignorer

(N)B (-N)B

0432.1210 9567.8810 0432.1210 + 9567.8810 = 1 0000.00

7142.118 0635.678 7142.118 + 0635.678 = 1 0000.00

0111.0102 1000.1102 0111.0102 + 1000.1102 = 1 0000.000

0A37.1116 F5C8.EF16 0A37.1116 + F5C8.EF16 = 1 0000.00

Les nombres qu’on peut représenter vont de – 2n-1 à + (2n-1-1)

48

Page 49: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

La représentation Base (Radix) ou complément de 10, 8, 16, 2

Les nombres qu’on peut représenter vont de – 2n-1 à + (2n-1-1)

Le nombre 0 a une représentation unique qui est 0000

L’extension d’un nombre codé sur n bits à un format n+k bits consiste à décaler le bit de signe à

la postions du MSB et à compléter les autres par 0 pour les nombres positifs et par 1 pour les

nombres négatifs.

+6 sur 4 bits d’écrit 0110 et sur 6 bits 000110

- 6 sur 4 bits d’écrit 1010 et sur 6 bits 111010

Si nous avons un nombre négatif qui est déjà représenté au complément de 2, pour connaitre sa

valeur, nous devons chercher le complément de R du nombre.

Si nous avons 1011 représenté au complément de 2, nous savons que c’est un nombre négatif

car le MSB est 1. A première vues, nous sommes tenté de dire que ce nombre binaire est

l’équivalent de -3 en base 10, 1 étant le signe et 011 la valeur absolue. Cela n’est vrai qu’en

représentation en signe et valeur absolue.

Le complément de 1 de 1011 nous donne 0100. Si on y ajoute 1, nous aurons son complément

de 2 qui est 0101. 0101 est l’équivalent de +5. Le nombre 1011 est alors -5 au lieu de -3.49

N10 N2 N'2 -N2 -N10

0 0000 1111 0000 0

1 0001 1110 1111 -1

2 0010 1101 11110 -2

3 0011 1100 1101 -3

4 0100 1011 1100 -4

5 0101 1010 1011 -5

6 0110 1001 1010 -6

7 0111 1000 1001 -7

1000 -8

-2n-1

à + (2n-1

-1)

Page 50: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Passage de la représentation au complément B -1 à B

Nous avons étudié la représentation d’un nombre négatif en complément B (vrai) et en complément de B-1 (restreint),

mais dans la pratique, nous partons toujours du complément de B-1 qui est plus facile à obtenir pour aller au complément

de B en ajoutant 1.

Si un nombre N de base B est composé de m chiffres dont la partie entière fait n chiffres, le signe inclus et une partie

fractionnaire de k chiffres, nous pouvons représenter ce nombre en notation de base comme suit :

(-Nr)B= (Bn)B - (N)B

Si un nombre N de base B est composé de m chiffres dont la partie entière fait n chiffres, le signe inclus et une partie

fractionnaire de k chiffres, nous pouvons représenter ce nombre en notation de base mois un comme suit :

(-Nr-1)B= (Bn)B - (N)B - (.1)kB (-Nr-1)B+ (.1)k

B = (Bn)B - (N)B = (-Nr)B = (-Nr-1)B+ 1

Pour obtenir le complement B d’un nombre on cherche le complement B-1 et on ajoute 1. 50

Page 51: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Cas spécifique des nombre binaires - Représentation en complément de 1

La représentation au complément de 1 consiste à remplacer les 0 par des 1 et les 1 par des 0.

Ainsi si m=01001100, son complément en base 1 sera m barre = 10110011

Le bit le plus significatif est le bit de signe et est 0 si le nombre est positif et est 1 si le nombre est négatif.

Cette notation à cependant un problème car le nombre 0 ne sera plus son propre complément. 0=00000000,

le complément en base 1 est 11111111, ce qui nous donne deux types de zéro.

51

Page 52: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Représentation en complément de 2

Le représentant en complément de 2 est la représentation en complément de 1 plus 1.

n=01010100, le complément de 1 de m est 10101011, le complément de 2 de m est 10101011+1 = 10101100

Quand on fait le complément à deux d’un nombre on retient tout le nombre y compris le signe.

Avec le complément à 2 le problème du 0 est résolu. 0=00000000, le complément à 1 de 0 est 11111111 et son

complément à 2 est 11111111+1 = 1 0000 0000. Comme le 1 dépasse les 8 bits, il est négligé et le 0 devient 0

Pour chercher le complément à 2 d’un nombre décimal en binaire, il faut :

Convertir le nombre positif en binaire

Chercher le complément de 1 en changeant les 1 par des 0 et les 0 par des 1

Chercher le complément de 2 en ajoutant 1 au complément de 1

On fait la représentation de +50, qui sur 8 bits fait : 00110010

Chercher son complément de 1 qui donne : 11001101

Cherche son complément de 2 en y ajoutant 1 = 11001110

Complément de deux d’un nombre négatif

1111 1111 0000 0000 +1 = 0000 0001 =152

Page 53: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Représentation en complément de 8, 10 et 16 à partir des

compléments de 7, 9 et 17Le représentant en complément de 8, 10, 16 est la représentation en complément de B plus 1.

N 35728 123410 1ABCH

Complément de (B-1) de N 42058 876510 D543H

On ajoute 1 pour avoir le complément de B 1 1 1

Complément de B de N 42068 876610 D544H

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

N 35728 123410 1ABCH

+

Complément de B de N 42068 876610 D544H

La somme donne 0 00008 000010 0000H 53

Page 54: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Les chiffres complémentaires des bases 2, 8, 10 et 16

Base 2

Chiffre 0 1

Complément 1 0

Base 8

Chiffre 0 1 2 3 4 5 6 7

Complément 7 6 5 4 3 2 1 0

Base 10

Chiffre 0 1 2 3 4 5 6 7 8 9

Complément 9 8 7 6 5 4 3 2 1 0

Base 16

Chiffre 0 1 2 3 4 5 6 7 8 9 A B C D E F

Complément F E D C B A 9 8 7 6 5 4 3 2 1 0

54

Page 55: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

REPRÉSENTATION DES NOMBRES

OU CODAGE ANALYTIQUE

Exercices

924.135 est un nombre base 10 exprimé en

notation signe et valeur absolue (sign and

magnitude). Donnez l’équivalent de ce nombre en

complément de 2 binaire.

Le nombre 924.135 commençant par 9 est

négatif, nous allons chercher le nombre positif, le

convertir en binaire et chercher le complément de

1, puis de 2.

924.13510 = -24.13510 , le nombre positif est

+24.135 (024.135) en binaire, ce nombre devient :

0 110 000. 001 000 101

1 001 111. 110 111 010 complément de 1

+ 1

1 100 111 . 110 111 011 complément de 2

55

2 2

24 2

0 12 2

Reste 0 6 2 MSB

LSB Reste 0 3 2

Reste 1 1 2

Reste 1 0 2

Reste 0 0

Reste

MSB

LSB

24 base 10 = 0 1 1 0 0 0 base 10 0 0 1

0 1 1 0 0 0 . 0 0 1 0 0 0 1 0 1 0

Conversion de la partie entiere d'un nombre base 10 en base Conversion de la partie fractionnaire d'un nombre base 10 en base

Multiplicande

Partie

fractionnaire

multiplicateur

(Base)

Partie entière

du produit

Partie

fractionnaire

du produit

0,135 2 0 0,27

0,27 2 0 0,54

0,54 2 1 0,08

0,135

0,08 2 0 0,16

0,16 2 0 0,32

0,32 2 0 0,64

0,64 2 1 0,28

0,28 2 0 0,56

0,24 2 0 0,48

0,56 2 1 0,12

0,12 2 0 0,24

Page 56: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

56

Exercices0.10112 1.10112

0124.3415 4124.3415

934510 034510

0123.4510 9876.5410

Combien de nombres entiers non signés de 8-bit, 16-bit, 32-bit et 64-bit peut on représenter

Les nombres entiers non signés vont de 0 à 2n-1

Pour 8 bits les nombres vont de 0 à 28-1 = de 0 à 255

Pour 16 bits les nombres vont de 0 à 216-1 = de 0 à 65535

Pour 32 bits les nombres vont de 0 à 232-1 = de 0 à 4294967295

Pour 64 bits les nombres vont de 0 à 264-1 = de 0 à 18 446 744 065 119 600 000

Combien de nombres entiers signés au complément de 2 de 8-bit, 16-bit, 32-bit et 64-bit peut-on représenter

Les nombres entiers non signés vont de (-2n-1 à +2n-1-1)

Pour 8 bits les nombres vont de (-27 à +27-1)= -128 à +127

Pour 16 bits les nombres vont de (-215 à +215-1)= - 32768 à + 32767

Pour 32 bits les nombres vont de (-231 à +231-1)= - 2147483648 à + 2147483647

Pour 64 bits les nombres vont de (-263 à +263-1)= - 9 223 372 036 854 775 808 à 9 223 372 036 854 775 808

Page 57: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

57

Exercices

Représenter en binaire les valeurs non signés en 8 bits de 88, 0, 1, 127 et 255

88 = 0101 1000, 0 = 0000 0000, 1 = 0000 0001, 127 = 0111 1111, 255 = 1111 1111

Représenter au complément de 2 en binaire les valeurs signés en 8 bits de +88, -88 , -1, 0, +1, -128 et +127

+88 = 0101 1000, -88 = 1010 1000, -1 = 1111 1111, 0 = 0000 0000, +1 = 0000 0001, -128 = 1000 0000, +127 = 0111 1111

NB. Pour représenter les nombre négatifs, il faut partir du nombre positif, chercher le complément de 1 sans le signe, ajouter 1

pour avoir le complément de 2, mettre 1 comme MSB représentant le signe.

Représenter en signe et module en binaire les valeurs signés en 8 bits de +88, -88 , -1, 0, +1, -127, and +127

+88=0101 1000, -88=1101 1000, -1=1000 0001, 0=0000 0000 or 1000 0000, +1=0000 0001, -127=1111 1111, +127=0111 1111.

Représenter au complément de 1 en binaire les valeurs signés en 8 bits de +88, -88 , -1, 0, +1, -127 and +127

+88=0101 1000, -88 =1010 0111, -1=1111 1110, 0=0000 0000 or 1111 1111, +1=0000 0001, -127=1000 0000, +127=0111 1111

Page 58: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

58

Exercices

Chercher la valeur des deux codes de 16

bits suivant leur représentation.

0000 0000 0010 1010

1000 0000 0010 1010

Nombre entier non signé de 16 bits

Nombre entier signé de 16 bits

Deux nombre entiers non signés de 8 bits

Deux nombre entiers signés de 8 bits

Un code de caractère Unicode de 16 bits

Deux code ISO-8859-1 de 8 bits

Corrigés

Nombre entier non signé de 16 bits.Si le nombre n’est pas signé, tous les chiffres représentent le module.

0000 0000 0010 1010 = 42

1000 0000 0010 1010 = 32810

Nombre entier signé de 16 bitsLe MSB est le signe du nombre, s’il est égale à 0 le nombre est positif

Le reste des chiffres constituent son module

0000 0000 0010 1010 = +42

Le MSB est le signe du nombre, s’il est égale à 1 le nombre est négatif

Pour trouver son module, il faut chercher le complément de 1 sans le

Signe et ajouter 1 pour avoir le complément de 2

1000 0000 0010 1010 = nombre négatifs

0000 0000 0010 1010 = nombre négatif sans le signe

0111 1111 1101 0101 = 32 725 module complément de 1

+1

0111 1111 1101 0110 = 32 726 module complément de 2

On remet le signe (1) et le nombre devient -32 726

Page 59: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

59

Exercices

Chercher la valeur des deux codes de 16

bits suivant leur représentation.

0000 0000 0010 1010

1000 0000 0010 1010

Nombre entier non signé de 16 bits

Nombre entier signé de 16 bits

Deux nombre entiers non signés de 8 bits

Deux nombre entiers signés de 8 bits

Un code de caractère Unicode de 16 bits

Deux code ISO-8859-1 de 8 bits

Deux nombres entiers non signé de 8 bits.Si le nombre n’est pas signé, tous les chiffres représentent le module.

0000 0000 = 0 0010 1010 = 42

1000 0000 = 128 0010 1010 = 42

Deux nombres entiers signés de 8 bits.Si le nombre n’est pas signé, tous les chiffres représentent le module

0000 0000 = +0 0010 1010 = +42

1000 0000 = ? 0010 1010 = +42

1000 0000 est un nombre négatif. On cherche le module sans le signe

en complément de 1 et on ajoute 1 pour avoir le complément de 2

1000 0000

0111 1111 = 127+1 = 128. Le nombre devient -128

Un code de caractère Unicode de 16 bits0000 0000 0010 1010 = « * »

10000000 0010 1010 = '耪’

Deux code ISO-8859-1 de 8 bits0000 0000 = ‘NUL’ 0010 1010 = « * »

1000 0000 = ‘PAD’ 0010 1010 = « * »

Page 60: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

60

Exercices

Comment représenter en binaire le nombre 1 dans le cas suivants:

Nombre entier non signé de 8 bits 0000 0001

Nombre entier signé de 8 bits 0000 0001

Nombre entier non signé de 16 bits 00000000 00000001

Nombre entier signé de 16 bits 00000000 00000001

Nombre entier non signé de 32 bits 00000000 00000000 00000000 00000001

Nombre entier signé de 32 bits 00000000 00000000 00000000 00000001

Comment représenter en binaire le nombre 1.0 dans le cas suivants:

Nombre en virgule flottante de 32 bits 0 1111111 00000000 0000000000000000, S=0, E=127,F=0

Nombre en virgule flottante de 64 bits 0 11111111111 000 00000000 00000000 00000000

00000000 00000000 00000000, S=0, E=1023,F=0

Comment représenter le caractère 1 dans les cas suivants:

Code Latin-1 de 8 bits 00110001 ou 31H

Code UCS-2 00000000 00110001

Code UTF-8 00110001

Page 61: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

L’addition binaire

La soustraction binaire

La multiplication binaire

La division binaire

Arithmétique décimale

Arithmétique octale

Arithmétique hexadécimale

61

Page 62: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition binaireL’addition binaire s’effectue exactement comme l’addition en base 10. C’est l’opération la plus simple de l’arithmétiquebinaire. La règle qu’il faut retenir est la suivante :

0+0=0 sans retenue 0+1=1 sans retenue 1+0=1 sans retenue 1+1=0 avec 1 comme retenue

9710+7210=16910

Cette opération effectuée en binaire donne ce qui suit

9710 = 01100001

7210 = 01001000

0 1 1 0 0 0 0 1

0 1 0 0 1 0 0 0

1 0 1 0 1 0 0 1 = 16910

62

11001001 1101110

+ 110101 + 100010

11111110 10010000

Page 63: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction binaire utilisant le complément de 1Soustraire b de a (a-b) revient à additionner a au complément de 1 de b. a-b = a + Ϲ1(b)

Pour chercher le complément de 1 d’un nombre binaire, il faut changer les 1 par les 0 et les 0 par les 1.

97 – 72 +97 - +72 +97 + Ϲ1(+72)

Le signe + est représenté par le chiffre 0

Le signe – est représenté par le chiffre 1

+97 donne 0 1 1 0 0 0 0 1

+72 donne 0 1 0 0 1 0 0 0

Ϲ1(+72) 1 0 1 1 0 1 1 1

L’opération qu’il faut faire est la suivante

+97 0 1 1 0 0 0 0 1

+

Ϲ1(+72) 1 0 1 1 0 1 1 1

= 1 0 0 0 1 1 0 0 0

Le 1 qui déborde sera additionné au résultat pour donner le résultat final

0 0 0 1 1 0 0 1 = +25 63

Page 64: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction binaire utilisant le complément de 2 donnant un résultat positif

Soustraire b de a (a-b) revient à additionner a au complément de 2 de b. a-b = a + Ϲ2(b)

Pour chercher le complément de 2 d’un nombre binaire, il faut changer les 1 par les 0 et les 0 par les 1 ensuite ajouter 1 au résultat obtenu.

97 – 72 +97 - +72 +97 + Ϲ2(+72)

Le signe + est représenté par le chiffre 0, le signe – est représenté par le chiffre 1

+97 donne 0 1 1 0 0 0 0 1

+72 donne 0 1 0 0 1 0 0 0

Ϲ1(+72) 1 0 1 1 0 1 1 1

+ 1

Ϲ2(+72) 1 0 1 1 1 0 0 0

L’opération qu’il faut faire est la suivante

+97 0 1 1 0 0 0 0 1

+

Ϲ2(+72) 1 0 1 1 1 0 0 0

= 1 0 0 0 1 1 0 0 1 = +25

Le 1 qui déborde ne fait pas partie de l’opération est négligé

64

Page 65: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction binaire donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : 10110 – 01100

cl1 cl2 cl3 cl4 cl5

0 2

1 0 1 1 0

0 1 1 0 0

0 1 0 1 0

S’il n’y a pas de difficultés les colonnes 5 (0-0=0), 4(1-0=1) et 3 (1-1=0), pour la deuxième colonne (0-1), ne pouvant pas

soustraire 1 de 0, j’emprunte (borrow) la base 2 du 1 qui se trouve à droite (première colonne). Le 1 de la première colonne

devient 0 (1-1=0) et le 0 de la deuxième colonne devient 2 (la base). Il s’agira de faire l’opération suivante.

0 2 1 1 0

0 1 1 0 0

0 1 0 1 065

1110110 1000001001

- 110101 - 11110011

1000001 100010110

Page 66: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction binaire donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : 10010 – 111

cl1 cl2 cl3 cl4 cl5

0 2 (1) 1 2 2

1 0 0 1 0

0 0 1 1 1

0 1 0 1 0

Nous allons, avant de démarrer l’opération, compléter la colonne gauche du diminuteur par des 0 non significatifs pour le mettre à la longueur du diminuende.

Colonne 5 (0-1). Ne pouvant pas soustraire 1 de 0, j’emprunte (borrow) la base 2 à la colonne 4, le 1 de la colonne 4 devient 0 et le 0 de la colonne 5 devient 2.

Colonne 4 (0-1). Ne pouvant pas soustraire 1 de 0, j’emprunte (borrow) la base 2 à la colonne 1 qui devient 0. La colonne 2 se retrouve avec un 2. J’emprunte au 2

de la colonne 2 un 1. Il restera 1 à la colonne 2 et la colonne 3 se retrouve avec la base (2). J’emprunte 1 à la colonne 3 qui devient 1 et la colonne 4 devient 2.

Il s’agira de faire l’opération suivante.

0 1 1 2 2

0 0 1 1 1

0 1 0 1 1

66

Page 67: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction binaire donnant un résultat négatif

72-97 = -25 . Faire cette opération revient à additionner +72 + Ϲ2(+97)

+72 donne 0 1 0 0 1 0 0 0

+97 0 1 1 0 0 0 0 1

Ϲ1(+97) 1 0 0 1 1 1 1 0

+ 1

Ϲ2(+97) 1 0 1 0 0 0 0 1

+72 0 1 0 0 1 0 0 0

+

Ϲ2(+97) 1 0 1 0 0 0 0 1

= 1 1 1 0 1 0 0 1 = Résultat intermédiaire

Nous cherchons le complément de 2 du résultat intermédiaire sans le signe (-) que nous remplaçons par le signe (+)

R intermédiaire 1 1 1 0 1 0 0 1

R intermédiaire sans le signe 0 1 1 0 1 0 0 1

Ϲ1R interméd. sans le signe 1 0 0 1 0 1 1 0

+ 1

Ϲ2R interméd. sans le signe 1 0 0 1 0 1 1 1 = - 2567

Page 68: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Multiplication binaire

La multiplication binaire s’effectue comme la multiplication décimale.

La règle à retenir est : 1x1 = 1, 1x0=0, 0x1=0 et 0x0=0. Aucune retenue pour la multiplication.

11 x 12 =132

11 = 1011

12 = 1100

1 0 1 1

1 1 0 0

0 0 0 0

0 0 0 0

1 0 1 1

1 0 1 1

-----------------------

1 0 0 0 0 1 0 0 = 13268

1110110 101011

x 11011 x 10011

'1110110 101011

'1110110 '101011

'0000000 000000

1110110 000000

1110110 101011

110001110010 110001110010

Page 69: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Division binaire

La division binaire s’effectue comme la division décimale. A retenir est : 0-1 = 0 avec 1 comme retenue, 1-0=1, 1-1=0, et 0-0=0.

132/12 1 0 0 0 0 1 0 0 / 1100 On peut supprimer les zéros qui sont à droite de la dividende et du diviseur

1 0 0 0 0 1 11(R1) (R1)

1 1

-------------

0 0 1 0

0 0 1 0 1 1 1. Vous regroupez les trois premier chiffres comme 11 est supérieur à 10

---------- 2. 1 x 11 vous donne 11 que vous enlevez de 100 comme ceci :

1 0 0 0 -1 donne 1 et il reste 1 que vous allez ajouter au premier 1 du 11.

(R1) (R1) 1+1 donne 0, ensuite 0-0 vous donne 0 et vous renvoyez la retenue 1

1 1

---------

0 0 1 1

1 1--------

0 069

1 1 1 0 0 1 0

11011

1 1 1 0 0 0 1 0

1 1 0 0 0 0 0 0 0 1 1 0

1 1 1 0 0 1 0

1 0 0 1 1 1 0 0

1 1 1 0 0 1 0

1 0 1 0 1 0 1 1

1 1 1 0 0 1 0

Page 70: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

70

L’addition décimale

Les additions décimales, octale et hexadécimale se font de la même façon que l’addition binaire.

1+ 1+ 1+

Base 10 : 3 4 5 8+

5 6 8 9

9 11 14 171=11-B(0) 4-14-B(10) 7=17-B(10)

A chaque fois que le résultat trouvé dépasse la base (B=10), il faut soustraire la base et retenir 1 qu’il

faut additionner à la colonne suivante.

Page 71: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

71

L’addition octale

Les additions décimales, octale et hexadécimale se font de la même façon que l’addition binaire.

1+ 1+ 1+ 1+

Base 8 : 3 4 5 7+

5 6 3 4

1 11 13 11 131=9-B(8) 3=11-B(8) 1=9-B(8) 3=11-B(8)

A chaque fois que le résultat trouvé dépasse la base (B=8), il faut soustraire la base et retenir 1 qu’il

faut additionner à la colonne suivante.

63375 5304

+ 7465 + 6647

73062 14153

Page 72: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

72

L’addition hexadécimale

Les additions décimales, octale et hexadécimale se font de la même façon que l’addition binaire.

1+ 1+

Base 16 : 3 A B C+

5 6 3 4

9 10 F 100=16-B(16) 0=16-B(16)

A chaque fois que le résultat trouvé dépasse la base (B=16), il faut soustraire la base et retenir 1 qu’il

faut additionner à la colonne suivante.

89A27 5304

+ EE54 + CC3B

9887B 11F3F

Page 73: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction octale donnant un résultat positif

a-b revient à additionner a au complément de 8 de b. a-b = a + Ϲ8(b)Pour chercher le complément de 8 d’un nombre binaire, il faut changer chaque chiffre par son

complément de telle sorte que l’addition des deux chiffres donne B-1 (7 pour la base 8 ) ensuite

ajouter 1 au résultat obtenu.

N 113138 +11313 011313

- -

M 034578 +03457 003457 On cherche le complément de 7 de M 774320

+1

On cherche le complément de 8 de M 774321

On additionne +N et le complément de 8 de +M 011313

774321

005634 = +0563473

Page 74: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction octale donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : 5428 – 3478

cl1 cl2 cl3

4 3+8=11 8+2= 10

5 4 2

3 4 7

0 1 0

Colonne 3. Ne pouvant pas enlever 7 de 2, je vais emprunter 1 à la colonne 2 qui devient 3 et la colonne 3 devient la base (8)+2 = 10

Colonne 2. Ne pouvant pas enlever 4 de 3, je vais emprunter 1 à la colonne 1 qui devient 4 et la colonne 2 devient la base (8)+3 =11

4 11 10

3 4 7

1 7 3

74

52130 145126

- 6643 - 75543

43265 47363

Page 75: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction octale donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : 7708 – 4568

cl1 cl2 cl3

6 8

7 7 0

4 5 6

0 1 0

Colonne 3. Ne pouvant pas enlever 6 de 0, je vais emprunter 1 à la colonne 2 qui devient 6 et la colonne 3 devient la base (8)+0 = 8

7 6 8

4 5 6

3 1 2

75

Page 76: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction octale donnant un résultat négatif

a-b revient à additionner a au complément de 8 de b. a-b = a + Ϲ8(b)

Pour chercher le complément de 8 d’un nombre binaire, il faut changer chaque chiffre par son

complément de telle sorte que l’addition des deux chiffres donne B-1 (7 pour la base 8 ) ensuite

ajouter 1 au résultat obtenu.

M 03457 +03457 003457

-

N 11313 +11313 011313 On cherche le complément de 7 de N 766464

+1

On cherche le complément de 8 de N 766465

On additionne +M et le complément de 8 de +N 003457

766465

772144 = Résultat intermédiaire

Nous allons chercher le complément de 8 du résultat sans le signe 072144 = 705633+1 = 705634 = -05634

76

Page 77: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction hexadécimale donnant un résultat positif

M-N revient à additionner M au complément de 16 de N. M-N = M + Ϲh(N)

Pour chercher le complément de 16 d’un nombre hexadécimale, il faut changer chaque chiffre par son

complément de telle sorte que l’addition des deux chiffres donne B-1 (15 pour la base 16) ensuite ajouter 1 au

résultat obtenu.

M 90F0 + 90F0 0 90F0

- - -

N 3ABC + 3ABC 0 3ABC

On cherche le complément de 15 de N 03ABC qui donne FC543 puis le complément de 16 en ajoutant 1 au

complément de 15, ce qui nous donne FC543+1 = FC544 . Il ne nous reste qu’à faire m + Ϲh(n)

0 9 0 F 0

+ F C 5 4 4

= 1 0 5 6 3 4 = 5634 Le 1 est un débordement qu’il faut ignorer et le 0

représente le signe (-)77

Page 78: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction hexadécimal donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : 59BAh – 10ACh

cl1 cl2 cl3 cl4

A(10) 26

5 9 B (11) A (10

1 0 A (10 C (12

Colonne 4. Ne pouvant pas enlever C(12) de A (10) je vais emprunter 1 à la colonne 3 qui devient A (10), et la colonne 4 devient la base

(16)+A(10) = 26

5 9 A (10) 26

1 0 A (10 C (12

4 9 0 E

78

725B2 45DD3

- FF29 - 9BF6

62689 3C1DD

Page 79: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction hexadécimal donnant un résultat positif avec

la méthode de l’emprunt de la base à partir de la gauche

Si nous voulons faire la soustraction suivante : FF03h – ABCDh

cl1 cl2 cl3 cl4

E(14) 16 (15) 19

F(15) F(15) 0 3

A(10) B(11) C(12) D(13)

Colonne 4. Ne pouvant pas enlever D(13) de 3 je vais emprunter 1 à la colonne 2 qui devient E (14), et la colonne 3 devient la base (16)+0

Je vais ensuite emprunter 1 à la colonne 3 qui devient 15, et la colonne 4 devient base (16)+3 = 19

F(15) E(14) F(15) 19

A(10) B(11) C(12) D(13)

5 3 3 6

79

Page 80: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Soustraction hexadécimale donnant un résultat négatif

N-M revient à additionner N au complément de 16 de M. N-M = N + Ϲh(M)

Comme le résultat sera négatif, il faudra cherche le complément de B du résulta provisoire sans le signe.

N 3ABC + 3ABC 0 3ABC

-

M 90F0 + 90F0 0 90F0

On cherche le complément de 15 de M 090F0 qui donne F6F0F puis le complément de 16 en ajoutant 1 au

complément de 15, ce qui nous donne F6F0F+1 = F6F10 . Il ne nous reste qu’à faire N + Ϲh(M)

0 3 A B C

+ F 6 F 1 0

= F A 9 C C on cherche le complément de 15 de ce résultat sans le signe 0A9CC qui donne F5633

Ensuite le complément de 16 pour avoir le résultat définitif F5633 +1 = F5634 = - 5634

80

Page 81: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

La multiplication octale

16

X 2

2x1=2 (plus la retenue 1) = 3 3 4 2x6 (12-8(base) = 4) on retient (1)

16

X 3

3x1=3 (plus la retenue 2) = 5 5 2 3x6 (18-8-8 =2) on retient (2)

16

X 14

7 0

1 6

2 5 0

4x1=4 (plus la retenue 3) = 7 4x6 (24-8-8-8 =0) on retient (3)

81

7506 4327

x 243 x 651

26722 4327

36430 26063

17214 32412

2334622 3526357

Page 82: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

La multiplication hexadécimale

1B

X 8

8x1=8 (plus la retenue 5) = D D 8 8x11 = (88-(5*16)=8) on retient (5)

AB

X B4

2AC

759

783C

4xA=40 (plus la retenue 2) = (42-16-16=A(10) 4xB=44 (44-16-16=C) on retient (2)

On retient 2 qu’on reporte.

BxA=110 (plus la retenue 7) = (117-(7*16)=5 BxB=121 (121-(7*16) =9) on retient (7)

On retient 7 qu’on reporte.

82

A928 6340

x 7D3 x B51

1FB78 6340

89708 1F040

4A018 443C0

52B83F8 4632740

Page 83: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

La division octale

Elle se fait comme toutes les autres divisions. La maitrise de l’addition, de la

soustraction et de la multiplication octale sont des prérequis qu’il faut avoir.

Si nous voulons diviser 50064 par 72, sachant que 50 est plus petit que 72,

nous allons prendre 500 et chercher combien de fois 72 nous pouvons avoir

dans 500.

Il faut éviter de tomber dans le piège 6x7=42 et choisir 6. 42 en décimal est

équivalent de 52 en octal.

Nous allons donc choisir 5 qui nous donne 5x72=442 comme suit : 5x2 donne

10 qui est égal à 8 (base)+2. Nos écrivons 2 ensuite retenir 1. 5x7=35 base 10

+ 1 nous donne 36 base 10 qui est l’équivalent de 44 base 8.

Nous enlevons 442 de 500 en octal, ce qui nous donne 36, nous abaissons le 6

pour nous retrouver avec 366 qui fait 4 fois 72 = 350 que nous ôtons de 366, il

nous restera 16. Nous abaissons le 4 pour avoir 164 qui faut 2 fois 72 en

octale. 83

5 0 0 6 4 72

4 4 2 542

3 6 6

3 5 0

1 6 4

Page 84: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

La division hexadécimale

Elle se fait comme toutes les autres divisions. La maitrise de

l’addition, de la soustraction et de la multiplication hexadécimale

sont des prérequis qu’il faut avoir.

Si nous voulons diviser 24328 par 2B sachant que 2B(11) est

supérieur à 24, nous allons prendre 243 et chercher combien de

fois 2B nous pouvons avoir dans 243.

Nous allons donc choisir D (13) qui nous donne Dx2B=22F

comme suit : DxB= 13x11=143=(16x8)-15(F). Nous mettons F et

retenir 8. (Dx2)+8 donne 34 qui fait (16x2)+2. Nous écrivons 2 et

retenir 2 que nous abaissons pour avoir 22F. Nous enlevons 22F

de 243 en héxadécimal, ce qui nous donne 14, nous abaissons le

2 pour nous retrouver avec 142. 7x2B donne 12D que nus

enlevons de 142 pour avoir 15. Nous abaissons le 8 pour avoir

158 qui fait 8 fois 2B

84

2 4 3 2 8 2 B

2 2 F D 7 8

1 4 2

1 2 D

1 5 8

Page 85: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices

Convertir en binaire et effectuer les opérations suivantes

124+117 124-117 117-124 -63+110 92+35

114-127 132/11 132/12 5-7 7-5 11x12

Effectuer les opérations suivantes en utilisation le complément de 10

7253210-325010 325010-7253210

Effectuer les opérations suivantes en utilisation le complément de 8

725328-32508 32508-725328

Effectuer les opérations suivantes en utilisation le complément de 16

7253216-325016 325016-725321685

Page 86: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

86

Conversion d'un nombre base 10 en base 2 Conversion d'un nombre base 10 en base 8

84 2 110 8

0 42 2 6 13 8

Reste 0 21 2 Reste 5 1 8

LSB Reste 1 10 2 LSB Reste 1 0

Reste 0 5 2 Reste

Reste 1 2 2 MSB

Reste 0 1 2

Reste 1 0

Reste

MSB

84 base 10 = 1 0 1 0 1 0 0 110 base 10 = 1 5 6

Conversion d'un nombre base 10 en base 4 Conversion d'un nombre base 10 en base 16

105 4 827 16

1 26 4 11 51 16

Reste 2 6 4 Reste 3 3 16

LSB Reste 2 1 4 LSB Reste 3 0

Reste 1 0 Reste

Reste MSB

MSB

105 base 10 = 1 2 2 1 827 base 10 = 3 3 B

Exercices

Faites un tableau Excel qui permet de convertir

n’importe quel nombre entier base 10 en base 2,

4, 8 et 16 par la méthode de la division

successive

Page 87: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices

Convertir en binaire et effectuer les opérations suivantes

124+117 124-117 117-124 -63+110 92+35

114-127 132/11 132/12 5-7 7-5 11x12

Effectuer les opérations suivantes en utilisation le complément de 10

7253210-325010 325010-7253210

Effectuer les opérations suivantes en utilisation le complément de 8

725328-32508 32508-725328

Effectuer les opérations suivantes en utilisation le complément de 16

7253216-325016 325016-725321687

Page 88: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices : Addition et Soustraction binaire

Soustraction binaire de nombres de 4 bits

1011 - 1001 = 0010

1100 - 0110 = 0110

1010 - 0011 = 0111

1101 - 1011 = 0010

1001 - 0111 = 0010

1100 - 1001 = 0011

Soustraction binaire de nombres de 8 bits

11001010 - 10011010 = 00110000

10011100 - 01111001 = 00100011

11001011 - 10000011 = 01001000

11100001 - 10011101 = 01000100

10000001 - 01100110 = 00011011

10010011 - 10000111 = 00001100

88

Soustraction binaire de nombres de 16 bits

11001011 00101000 - 10011110 01011011 = 101100 11001101

10111100 10111000 - 10011000 11110011 = 100011 11000101

Addition binaire

101 + 11 = 1000

111 + 111 =1110

1010 + 1010 =10100

11101 + 1010 =100111

11111 + 11111 =111110

Page 89: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices : Division binaire

1000 / 10 = 100

1111 / 11 = 101

1100 / 10 = 110

1001 / 11 = 11

111 / 10 = 11.1

1100 / 100 = 11

10110 / 100 = 101.1

1111 / 101 = 11

11011 / 110 = 100.1

10110 / 110 = 11.1...

101010 / 111 = 110

89

Exercices : Multiplication binaire

111 * 010 = 1110

110 * 011 = 10010

101 * 011 = 1111

110 * 101 = 11110

101 * 101 = 11001

1110 * 0011 = 101010

1101 * 0101 = 1000001

0010 * 1101 = 11010

1010 * 1101 = 10000010

Page 90: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices : Addition octale

7327 + 6302 = 15631

1321 + 5043 = 6364

3116 + 1741 = 5057

2672 + 6056 = 10750

1157 + 2557 = 3736

1170 + 5217 = 6407

7406 + 4417 = 14025

4175 + 5320 = 11515

4040 + 1154 = 5214

5166 + 7072 = 14260

7615 + 7647 = 17464

7076 + 3734 = 13032

4124 + 7457 = 13603

6412 + 6651 = 15263

6607 + 1152 = 7761

7614 + 4173 = 14007

7773 + 7601 = 17574

6501 + 6477 = 15200

7410 + 3040 = 12450

6773 + 4620 = 1361390

Soustraction octale

5343 - 2401 = 2742

5353 - 4074 = 1257

14510 - 4731 = 7557

7145 - 1361 = 5564

4715 - 1237 = 3456

11654 - 6303 = 3351

6064 - 1915 = 5047

17337 - 7526 = 7611

14307 - 5261 = 7026

7151 - 1304 = 5645

3006 - 1263 = 1523

4102 - 2643 = 1237

11453 - 2122 = 7331

10057 - 4530 = 3327

12070 - 6142 = 3726

12761 - 6431 = 4330

11417 - 7007 = 2410

7323 - 2111 = 5212

7156 - 4315 = 2641

12701 - 2733 = 7746

Division octale

640630 /67 =7450

133565 /17 =6073

152066 /56 =2235

100670 /16 =4504

155240 /41 =3240

260362 /45 =4612

211276 /26 =6175

25200 /21 =1200

164420 /60 =2333

45320 /11 =4120

500324 /77 =5054

404266 /46 =6532

105620 /35 =2320

26056 /15 =1546

514654 /54 =7441

22364 /53 =334

424224 /54 =6217

36723 /7 =4325

213177 /61 =2657

375467 /51 =6137

Multiplication octale

2577 *12 = 33366

7356 *13 = 122072

5672 *6 = 43134

1247 *72 = 114726

7416 *4 = 36070

6701 *54 = 456454

4455 *12 = 55702

2051 *41 = 104511

4461 *75 = 430255

7046 *22 = 177254

6500 *74 = 615400

5505 *63 = 437277

3363 *61 = 252203

3304 *5 = 20274

2416 *14 = 36250

5342 *37 = 250536

540 *24 = 15600

1033 *21 = 21713

6276 *53 = 421752

7503 *44 = 422554

Page 91: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices : Addition et Soustraction hexadécimal

2E9F + 947A = C319

9DAD + 6E5E = 10C0B

9EF5 + 97BA = 136AF

33F2 + 3A11 = 6E03

A737 + 695F = 11096

832B + AF1D = 13248

39FB + 33FC = 6DF7

C22A + 3D3D = FF67

B881 + FFBD = 1B83E

15646 - C89A = 8DAC

112C7- A76E = 6B59

14C21- 5FD3 = EC4E

10508 - 60DD = A42B

12D92- 7E53 = AF3F

14D88- 953B = B84D

C326 - 56C2 = 6C64

15805 - C44C = 93B9

140DD- 690D = D7D0

E3B7 - A538 = 3E7F

FF45 - 86CB = 787A 91

Multiplication et Division hexadécimal

21D3D8 /4C =71F2

BA0C /6C =1B9

2C0DC /56 =2235

100670 /21 =155C

1FA1CC /3A =8B9E

5C0F55 /E7 =DA63

3AD053 /4D =C389

590D12 /21 =1200

164420 /83 =AE06

EEDA *29 =2640EA

1479 *38 =47A78

1B71 *33 =57783

8901 *18 =CD818

FE7E *C4 =C2D878

198B *E6 =16F2E2

7644 *4C =231C30

9E8F *CD =7EF883

A14B *FA =9D833E

F61C *A8 =A18260

Page 92: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Exercices

Augmenter les exercices

Conversion

Complément

Representatation

Addition

Soustraction

Multiplication

Division

92

Page 93: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

La virgule flottante est une méthode d'écriture de nombres réels fréquemment utilisée dans les ordinateurs.

Elle consiste à représenter un nombre réel par :

Un nombre à virgule flottante comprend deux parties. La mantisse qui représente les chiffres significatifs

(significande) du nombre et l’exposant ou la caractéristique qui représente la puissance à la quelle la base

est élevée.

signe × mantisse × bexposant

Si nous prenons le nombre 13E8, 13 est la mantisse, 8 est l’exposant et 10 est la base, +1 est le signe.

Nous allons donc avoir +13x108 = 1 300 000 000

Pour représenter un nombre en virgule flottante, il faut alors utiliser un exposant et une mantisse signées

124, 23 = 0,124 x 10+3 0,0000687 = +0,678 x10-4 93

Page 94: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

La représentation d’un nombre en virgule flottante obéit aux règles suivantes :

La normalisation

Si nous avons un nombre qui s’écrit 0.d1d2…dn x Be

1. La partie entière du nombre doit toujours être égale à 0

2. d1 doit toujours être supérieur à 0, d1>0, et les d allant de 2 à n doivent être supérieurs ou égale à 0.

1,23 x 103 peut s’écrire de plusieurs façon comme celles-ci : 1,23 x 103 , 12,3 x 102 , 123 x 101 , 0,123 x 104

Mais seul la dernière écriture est normalisée parce que la partie entière est 0 et d1 est égale à 1 donc supérieur à 0, d2 et d3 qui sont

respectivement 2 et 3 sont aussi supérieurs ou égale à 0.

La précision

Le nombre peut être représenté de deux manières:

La simple précision (32 bits), et la double précision (64 bits)

94

S

S e m

S

S e m

FP 64 = (-1)S x B

e-1023 x (1.m)

8 bits pour l'exposant e 23 bits pour la mantisse, la partie fractionnaire

11 bits pour l'exposant E 52 bits pour la mantisse, la partie fractionnaire

FP 32 = (-1)S x Be-127 x (1.m)

Page 95: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Comment représenter un nombre en virgule flottante sur 32 bit suivant la norme IEEE 754

263.3 à représenter

1. Nous allons convertir 263.3 en binaire et cela nous donne 100000111.01001100110011

La partie fractionnaire est cyclique et de fréquence « 0011 »

2. Nous allons ensuite faire la notation scientifique de 263.3 converti en binaire en déplaçant le point d’un certain

nombre de positions qui va donner l’exposant. 100000111.01001100110011

Si nous déplaçons le point de 8 positions juste avant le 1, nous aurons

(1.00000111 01001100110011)x28

3. Nous allons écrire le nombre suivant la norme IEEE 754 qui dit que le premier bit est le bit de signe. Comme 263.3

est positif, le bit de signe est 0. Les huit bits qui suivent représente l’exposant 8. Dans le format IEEE 754 si l’exposant

est positif ont ajoute 127, si l’exposant est négatif on le soustrait de 127. Notre exposant sera alors 127+8 = 135.

Les 23 places restantes abriterons la mantisse qui représente les chiffres significatifs ou significande ou la partie

fractionnaire. Étant donné qu’elle est cyclique, nous allons prendre les 23 premiers chiffres)

Nous aurons ainsi : signe(0) exposant (10000111) mantisse (00000111 010011001100110)

263.3 = 0100 0011 1000 0011 1010 0110 0110 0110 = 4383A666

95

Page 96: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Comment représenter un nombre en virgule flottante sur 32 bit suivant la norme IEEE 754

-5,7510 à représenter au format IEEE 754

1. On commence par convertir la valeur absolue 5,75 en binaire qui donne 101,110

2. On déplace la virgule de deux place vers la gauche pour avoir (1,01110) x 22, p=2

3. On cherche l’exposant réel qui sera biais+p = 217+2 = 129 que nous allons convertir en binaire (1000 0001)

4. Il ne nous reste qu’à écrire les 32 chiffres en commençant par 1 qui est le bit de signe, ensuite l’exposant, 129

convertit en binaire, puis la mantisse sur 23 positions.

1 1000 0001 01110 000 000000000000000Nous allons regrouper ce nombre de 32 bits pour le convertir en hexadécimal

1100 0000 1011 1000 0000 0000 0000 000

C 0 B 8 0 0 0 0 96

Page 97: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Comment représenter un nombre en virgule flottante sur 32 bit suivant la norme IEEE 754

-0,12510 à représenter au format IEEE 754

-0,12510 étant négatif, on peut le représenter comme 10,125. Le MSB 1 est le bit de signe

1. Nous allons convertir 10,125 en binaire et cela nous donne 1010,001, normalisé donne (1.010001)x 23

2. Nous allons ensuite faire la notation scientifique de -0,12510 converti en binaire en déplaçant le point d’un certains

nombres de positions qui va donner l’exposant.

1010,001 Si nous déplaçons le point de 3 positions juste avant le 1, nous aurons (1.010001)x 23

3. Nous allons écrire le nombre suivant la norme IEEE 754 qui dit que le premier bit est le bit de signe. Comme -0,12510

est négatif, le bit de signe est -. Les huit bits qui suivent représente l’exposant 8. Dans le format IEEE 754 si l’exposant

est positif ont ajoute 127, si l’exposant est négatif on le soustrait de 127. Notre exposant sera alors 127+3 = 130.

Les 23 places restante abriterons la mantisse qui représente les chiffres significatifs ou significande ou la partie

fractionnaire.

-0,12510 = 1 10000010 010001000000000000000002 = C122000016

97

Page 98: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Représentation du zéro, des infinis et des représentations dénormalisés suivant

la norme IEEE 754

En dehors des format normalisés, la norme IEEE permet de représenter le 0, le

valeurs infinis et celles qui sont dénormalisées.

0 nous donne en binaire 0. Le signe est quelconque, la mantisse est égale à 0 et

l’exposant est égale à 0-127, ce qui donne -127, ce qui donne un 0 négatif et un

zéro positif.

Les valeurs infinies (+∞ et - ∞) ont comme mantisse 0, comme exposant c=+128.

Le représentation dénormalisés permettent de représenter des nombres plus

petits que ceux admis par le format IEEE normalisé. Dans ce cas l’exposant est -

127 et la mantisse est sous la forme ±0,M.2 ±c

Les erreurs peuvent être représentées par des NaNs (Not a Number) avec

c=+128 et une mantisse non nulle.98

Format Valeurs représentées

Normalisé: -126 ≤ c ≤ +127 2-126 à 2128

c = -127, M = 0, S = + ou - + 0 ou - 0

c = +128, M = 0, S = + ou - + ∞ ou - ∞

c = -127, M ≠ 0, S = + ou - dénormalisé

c = +128, M ≠ 0, S = + ou - NaNs

Page 99: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Comment convertir un nombre binaire représenté au format IEEE 754 sur 32 en décimal.

0 100 0011 0101 0100 0000 0000 0000 0000

1. Le nombre que nous convertir est positif car commençant par 0 qui le signe.

Les 8 chiffres qui suivent représente l’exposant 100 0011 0 = 134. Étant donné qu’il est supérieur à 127, il est positif.

2. Nous allons chercher l’exposant réel en soustrayant 127 de 134, ce qui donne 7

3. Pour avoir la mantisse, nous allons chercher son équivalent décimal en les multipliant par les puissances négatives

de 2, commençant par 2-1, 2-2, 2-3…., 2-22, 2-23

1 0 1 0 1 0 0 0000 0000 0000 00 0 0

2-1 2-2 2-3 2-4 2-5 2-22 2-23

0,5 0,25 0,125 0,0625 0,03125

0,5 + 0 + 0,125 + 0 + 0,03125 = 0,65625

(-1)S x (1+m) x 2e = (-1)0x(1+ 0,65625)x 27= 21299

Page 100: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Représentation des nombre à virgules flottantes

Comment convertir un nombre binaire représenté au format IEEE 754 sur 32 en décimal.

1000 1000 1000 1000 1000 0000 0000 0000

1. Le nombre que nous convertir est négatif car commençant par 1 qui est le signe.

Les 8 chiffres qui suivent représente l’exposant 000 1000 1= 17. Étant donné qu’il est inferieur à 127, il est négatif.

2. Nous allons chercher l’exposant réel en soustrayant 127 de 17, ce qui donne -110

3. Pour avoir la mantisse, nous allons chercher son équivalent décimal en les multipliant par les puissances négatives

de 2, commençant par 2-1, 2-2, 2-3…., 2-22, 2-23

0 0 0 1 0 0 0 1 000 0000 0000 0000

2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 ………2-22 2-23

0,5 0,25 0,125 0,0625 0,03125

0 + 0 + 0 + 0,0625 + 0 + 0 + 0 + 0,00390625 = 0,06640625

(-1)S x (1+m) x 2e = (-1)0x(1+ 0,06640625)x 2-110= 1,06640625 x 2-110100

Page 101: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition des nombres à virgules flottantes

Nous allons commencer à faire quelques rappels avec la base

10. Si nous devons additionner deux nombres en notation

scientifique. Nous devons nous arranger pour que les exposants

soient les même avant de pouvoir additionner les mantisses ou

signifiants. Si les exposants sont différents nous devons les

égaliser avant de procéder à l’addition. Pour cela nous partons de

l’exposant le plus petit pour atteindre l’exposant le plus grand.

1. Cas ou les exposants sont identiques

5.0 E+2 5 x 102 500

+7.0 E+2 +7 x 102 +700

12.0 E+2 12 x 102 1200 = 12 E+2 = 1.2 E+3

101

1. Cas ou les exposants sont différents

1.2232 E+3

+ 4.211 E+5

Nous allons convertir le nombre 1.2232 E+3 qui a l’exposant le

plus petit pour lui donner un exposant de type E+5 en déplaçant

la virgule vers la gauche de 5-3 = 2 positions.

1.2232 E+3 devient alors 0.012232 E+5

Nous pouvons additionner 0.012232 E+5 avec 4.211 E+5, ce qui

va nous donner 4.223232 E+5

1.2232 E+3 4.211 E+5

+ 4.211 E+5 = + 0.012232 E+5

4.223232 E+5

Page 102: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition des nombres à virgules flottantes

Nous pouvons effecteur toutes les opérations avec le nombres à virgules flottantes. Nous nous limiterons cependant à

l’addition et à la soustraction. La division et la multiplication seront abordées dans un autre cours.

Addition

Pour additionner ou soustraire deux nombres à virgule flottante, il faut :

1. Égaliser les exposants en alignant l’exposant le plus petit sur l’exposant le plus grand. Ceci peut se faire par le

déplacement de la virgule vers la gauche.

2. Après addition, normaliser le résultat en s’assurant que la partie entière devienne 0 et que d2 soit supérieur à 0

1.1100 x 24 + 1.100 x 22 . Nous allons aligner le terme qui l’exposant le plus petit, 1.1000x 22 devient alors 0.0110 24

1 . 1 1 0 0 x 24

0 . 0 1 1 0 x 24

10. 0 0 1 0 x 24

On procède ensuite à la normalisation qui nous donne 0.100010 x 26102

Page 103: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition des nombres à virgule flottante de même exposant

103

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

a 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

b 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0

Les deuxnombres a et b sont positifs et ont le même exposant 1 1 0 1 0 1 1 1 = 21510

Signifiant de a a =1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

Signifiant de b b =1. 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0

Ne jamais oublier le 1.

qui n'est pas stocké 1 1. 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1

dans la machine

Nous allons ensuite normaliser le résultat sours la forme 1.xxxxx

1. 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1

Ignoré

Nous allons écrire a+b sous 32 bits en tenant compte du nouveau exposant qui est 216 (1101 1000)

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1

Exposant (8 bits) 23 bits significatifs

a+b =

a+b =

x 2215

x 2215

x 2215

a+b = x 2216

Exposant (8 bits) 23 bits significatifs

a+b

Page 104: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition des nombres à virgule flottante d’exposants différents

104

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

a 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

b 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0

Les deux nombres a et b sont positifs et n'ont pas le même exposant

1 1 0 1 0 1 1 1 Exposant de a = 21510

1 1 0 1 0 0 0 1 Exposant de b = 20910

b qui a le plus petit exposant doit rejoindre a qui a l'exposant le plus grand

Signifiant de a a =1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

Signifiant de b b =1. 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0

Il faut déplacer la virgule de b vers la gauche de (215-209)=6 positions

Nouveau signifiant de b 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0

Signifiant de a a =1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

Signifiant de b b =0. 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0

1. 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1

Le résultat est dèjà normalisé

Nous allons écrire a+b sous 32 bits en tenant compte de l'exposant qui est 215 (1101 0111)

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1

x 2215

Exposant (8 bits) 23 bits significatifs

a+b =

a+b =

x 2215

x 2209

x 2215

x 22150.000001

x 2215

Exposant (8 bits) 23 bits significatifs

a+b

Page 105: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Addition des nombres à virgule flottante d’exposants différents

105

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

a 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1

b 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0

Les deux nombres a et b sont positifs et n'ont pas le même exposant

1 1 0 1 0 1 1 1 Exposant de a = 21510

0 0 0 1 0 0 0 1 Exposant de b = 1710

b qui a le plus petit exposant 17 doit rejoindre a qui a l'exposant le plus grand 215

Signifiant de a a =1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1

Signifiant de b b =1. 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0

Il faut déplacer la virgule de b vers la gauche de (215-17)=198 positions

Déplacer sur 198 positions revient à n'avoir que des zéros (0), ce qui donne b=0

Signifiant de a a =1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1

Signifiant de b b =0. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

a+b = a 1. 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1

Le résultat est dèjà normalisé

Nous allons écrire a+b sous 32 bits en tenant compte de l'exposant qui est 215 (1101 0111)

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1

x 2215

Exposant (8 bits) 23 bits significatifs

a+b =

x 2215

x 217

x 2215

x 2215

Exposant (8 bits) 23 bits significatifs

a+b

Page 106: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

Arithmétique des nombres à virgules flottantes

0.110+0.610 = 0.710

Nous allons convertir y= 0.110 et y= 0.610 en binaire par la méthode des

multiplications successives.

Pour x nous multiplions la partie fractionnaire par la base (2) et nous gardons

le premier reste comme le MSB. Nous continuons ensuite la multiplication

jusqu'à obtenir 0 comme multiplicande et nous arrêtons le processus. Il peut

arriver que la multiplication n’arrive pas à terme, dans ce cas nous allons

nous retrouver avec une un nombre cyclique et nus allons déterminer la

fréquence.

yx= 0.110

0.1 x 2 = 0 reste 0.2

0.2 x 2 = 0 reste 0.4

0.4 x 2 = 0 reste 0.8

0.8 x 2 = 1 reste 0.6

0.6 x 2 = 1 reste 0.2

0.2 x 2 = 0 reste 0.4

0.4 x 2 = 0 reste 0.8

0.110 donne 0.00011 2

C’est un nombre cyclique de fréquence 0011

106

y normalisé s’écrit 1.100110011001100110011001 x 2-4

y est positif, le MSB, bit de signe est égale à 0

L’exposant - 4 est négatif, nous allons avoir - 4+127 comme

exposant biaisé ce qui donne 12310 = 01111011y = 0 01111011 10011001100110011001100

x= 0.610

0.6 x 2 = 1 reste 0.2

0.2 x 2 = 0 reste 0.4

0.4 x 2 = 0 reste 0.8

0.8 x 2 = 1 reste 0.6

0.6 x 2 = 1 reste 0.2

0.2 x 2 = 0 reste 0.4

0.4 x 2 = 0 reste 0.8

0.8 x 2 = 1 reste 0.6

0.610 donne 0.1001 2

C’est un nombre cyclique de fréquence 1001

x normalisé s’écrit 1. 001 1001 1001 1001 1001 1001001 x 2-1

x est positif, le MSB, bit de signe est égale à 0

L’exposant - 1 est négatif, nous allons avoir - 1+127 comme exposant biaisé

ce qui donne 12610 = 01111110

x= 0 01111110 001 1001 1001 1001 1001 1001

Page 107: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

107

y = 0.6 = 0.1001100110011001100110011 1.001100110011001100110011 x 2-1

Le signe de 0.6 est 0

L'exposant biaisé est -1+127 = 126 = 01111110

x = 0.1 = 0.00011 1.1001100110011… x 2-4

Le signe de 0.1 est 0

L'exposant biaisé est -4+127 = 123 = 01111011

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

y 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 x 2-1

x 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 x 2-4

Les deux nombres y et x sont positifs et n'ont pas le même exposant

Pour additionner ces deux nombres nous allons égaliser les exposants

x + y = (xs x 2 xe-ye

+ ys) x 2ye

, avec xe<=ye

0. 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 x 2-1

1. 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 x 2-1

1. 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 x 2-1

Le résultat est dèjà normalisé

Nous allons écrire x+y sous 32 bits en tenant compte de l'exposant

Le signe est 0 car étant le résultat de l'addition de 2 nombres positifs

L'exposant biaisé est -1+127 = 126 = 0111 1110

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0

x

y

Exposant (8 bits) 23 bits significatifs

y+x

Exposant (8 bits) 23 bits significatifs

y+x

Page 108: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

108

Multiplication des nombres à virgule flottante

-0.3 = 0.01001100110011001100110011 1.001100110011001100110011 x 2-2

Le signe de -0.3 est 1

L'exposant biaisé est -2+127 = 125 = 01111101

500.25 = 111110100.01 1.1111010001 x 28

Le signe de 500.25 est 0

L'exposant biaisé est 8+127 = 135 = 10000111

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

a 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0

b 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

Les deux nombres a et b sont positifs et n'ont pas le même exposant

Pour mulltiplier ses deux nombre, nous allons multiplier les signifiant et additionner les eposants

axb = (asxbs)x 2 (ae+be)

1. 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 x2-2

x 1. 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 x28

1 0. 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 x26

1. 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 x27

Le résultat est dèjà normalisé

Nous allons écrire a+b sous 32 bits en tenant compte de l'exposant qui est 215 (1101 0111)

Le signe est 1 car étant le résultat de la multiplication d'un nombre positif et d'un nombre négatif

L'exposant biaisé est 7+127 = 134 = 10000110

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0

Exposant (8 bits) 23 bits significatifs

Exposant (8 bits) 23 bits significatifs

axb

Page 109: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

109

Division des nombres à virgule flottante

a = '91.34375 = 1011011.01011 1.01101101011 x 26

Le signe est 0

L'exposant biaisé est 6+127 = 133 = 10000101

b = '0.14453125 = 0.00100101 1.00101 x 2-3

Le signe de 500.25 est 0

L'exposant biaisé est -3+127 = 124 = 10000111

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

a 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0

b 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Les deux nombres a et b sont positifs et n'ont pas le même exposant

Pour diviser a/b, nous allons diviser les signifiant et soustraire les exposants

a/b = (as/bs)x 2 (ae-be)

1. 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 x26

: 1. 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x2-3

x 1. 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x26-(-3)

= 29

Le résultat est dèjà normalisé

Nous allons écrire a:b sous 32 bits en tenant compte de l'exposant qui est 9+127=136= (1000 1000)

Le signe est 0 car étant le résultat de la division de deux nombres positifs

S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

= 63210

Exposant (8 bits) 23 bits significatifs

a/b

Exposant (8 bits) 23 bits significatifs

Page 110: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

110

Les erreurs dans la représentation des nombres à virgule flottante

Les erreurs relatives, les ulp (unit in the last place) et les machines upsilon

L'erreur d'arrondi étant inhérente au calcul en virgule flottante, il est important de pouvoir la mesurer. Ces erreurs

peuvent être de plusieurs ordres comme les arrondis, des débordements, des nombres non normalisables

(dénormalisé), des non-nombre, des nombres qui tendent vers l’infini,

Il y a plusieurs type de représentations de nombre en virgule flottante, mais les plus connues et les plus utilisées utilisent

des bases paires comme 10, 8, 2, et 16 et une précision p.

Souvent nous travaillons entre les bases 10 et 2. C’st le nombre 0.1 qui pose souvent des problème car s’il s’écrit 0.1 en

base décimal, en base binaire sa représentation est cyclique et s’écrit 1.10011001100110011001101 × 2-4

Ces erreurs sont du au fait que cette représentation stock un nombre réel qui des fois peut avoir une infinité de chiffres

dans un format fini de 32 bits en simple précision, de 64 bits en double précision ou de 80 bits en long double précision.

Des fous nous rencontrons des nombres dont le significande ne peut pas être contenu par les 23 position allouées, des

fois nous avons des nombres cycliques ou des nombres irrationnels.

Page 111: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

111

Les erreurs dans la représentation des nombres à virgule flottante

Les erreurs relatives, les ulp (unit in the last place) et les machines upsilon

Ces erreurs font aussi que les opérations effectuées sur ces nombres ne sont pas souvent associatives et

distributives.

Si nous additions un petit nombre à un grand nombre pour ensuite soustraire le grand nombre, nous nous rendons

compte que le grand nombre dans la représentation absorbe le petit nombre et reste égale à lui même.

(3.14+1E10) - 1E10 = 3.14 + (1E10-1E10).

L’expréssion à gauche va donner 0, car (3.14+1E10) demeure 1E10, 3.14 étant négligeable devant lui.

L’expréssion de droit devient 3.14

Pour la distributivité

1E20 x (1E20 - 1E20) = (1E20 x 1E20) - (1E20 x 1E20)

L’expression de gauche va nous donner 0 et l’expréssion de droite va nous donner l’infini – l’infini qui reste infini

Page 112: ARCHITECTURE DES MACHINES NUMÉRIQUESunis.sn/wp-content/uploads/2019/10/REPRESENTATION... · 1 Je m’appelleEl Hadji Issa Sall, je suis professeur à l’Universitédu Sahel chargé

ARITHMÉTIQUE NUMÉRIQUE

112

Les erreurs dans la représentation des nombres à virgule flottante

Les erreurs relatives, les ulp (unit in the last place) et les machines upsilon

Nous pouvons arrondir par défaut qui consiste à éliminer le chiffre de trop , par excès qui consiste à faire l’arrondi

au delà de la moiti é de la base ou entre les deux.