Vous êtes sur la page 1sur 7

Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

Les données sont les opérandes sur lesquels portent les


CHAPITRE 2 : REPRESENTATION opérations (traitements), produits par celles-ci. On distingue les
INTERNE DES INFORMATIONS données numériques, pouvant être l’objet d’une opération
arithmétique et des données non numériques.

1. Introduction
Les informations traitées par l’ordinateur sont de différents
types (nombres, instructions, images, séquences d’images animés,
sons, etc.) mais elles sont toujours représentées, à la base, sous
forme binaire. Une information élémentaire correspond à un chiffre
(0 ou 1) appelé bit. Une information plus complexe, telle qu’un
caractère ou un nombre se ramène à un ensemble de bits. Le
codage d’une information consiste à établir une correspondance Figure 2. 1: Types d'informations
entre la représentation externe de l’information et sa représentation
2. Données non numériques
interne qui est une suite de bits.
Les données non numériques correspondent aux caractères
Les informations traitées par l’ordinateur sont des instructions
alphanumériques et aux caractères spéciaux. Le codage est réalisé
ou des données.
par une table de correspondance, propre à chaque code utilisé.
Ecrites en langage machine, les instructions représentent les
L’opération permettant de passer d’un code A à un code B est
opérations effectuées par un ordinateur. Elles sont composées de
appelé transcodage. Parmi les plus connus, on peut citer les codes :
plusieurs champs, qui sont :
 ASCII (American Standard Code for Information
 Le code de l’opération à effectuer
Interchange)
 Les opérandes impliqués dans l’opération
 UNICODE – ISO/IEC 10646
Le code de l’opération doit subir un décodage
Ainsi que deux codes plus anciens, disparus ou en voie de
(transformation inverse du codage) pour que l’opération puisse
disparition :
effectivement être exécutée.

vanel.divin@gmx.fr Page 1
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

 BCD (Binary Coded Decimal) 3.1. Entiers positifs ou nuls


 EBCDIC (Extended Binary Coded Decimal Internal Les systèmes de numération font correspondre, à un
Code) nombre𝑁, un certain symbolisme écrit ou oral. Dans un système de
base 𝑝 supérieur à 1, les nombres 0, 1, 2, … , 𝑝 − 1 sont appelés
chiffres. Tout nombre entier peut être représenté par une expression
de la forme :
𝑁 = 𝑎𝑛 𝑝𝑛 + 𝑎𝑛−1 𝑝𝑛−1 + ⋯ + 𝑎1 𝑝 + 𝑎0 𝑎𝑣𝑒𝑐 𝑎𝑖 ∈ {0; 1, … , 𝑝 − 1} 𝑒𝑡 𝑎𝑛 ≠ 0.
La notation condensée 𝑁 = 𝑎𝑛 𝑎𝑛−1 … 𝑎1 𝑎0 est équivalente.
On distingue en informatique, les systèmes de numération
décimale, binaire, octale et hexadécimale dont une
correspondance est représentée par le tableau ci-dessous.
Tableau 2. 1: Correspondance entre différents codes

3. Données numériques Tableau 2. 2: Correspondance entre les systèmes de numération les


plus usités
Les données numériques sont de différents types :
 Nombre entiers positifs ou nuls
 Nombres entiers négatifs
 Nombres fractionnaires
 Nombre en notation scientifique
Le codage est réalisé à l’aide de l’algorithme de conversion
associé au type de la donnée. Les opérations arithmétiques que
peuvent subir ces données sont souvent effectuées en arithmétique
binaire.

vanel.divin@gmx.fr Page 2
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

3.2. Changements de base 3.2.5. Octal (hexadécimal)  binaire


3.2.1. Binaire décimal La conversion correspond à un éclatement de chaque chiffre

La conversion se fait simplement en additionnant les octal (hexadécimal) en son équivalent binaire sur 3 (4) bits.

puissances de 2 correspondant aux bits de valeur 1. Exemples :


Exemple : 101012 = 24 + 22 + 20 = 16 + 4 + 1 = 2110 𝟏𝟕𝟖 = 𝟎𝟎𝟏𝟏𝟏𝟏𝟐 𝒄𝒂𝒓 𝟏𝟖 = 𝟎𝟎𝟏 𝒆𝒕 𝟕𝟖 = 𝟏𝟏𝟏𝟐
𝟐𝑨𝟏𝟔 = 𝟎𝟎𝟏𝟎𝟏𝟎𝟏𝟎𝟐 𝒄𝒂𝒓 𝟐𝟏𝟔 = 𝟎𝟎𝟏𝟎𝟐 𝒆𝒕 𝑨𝟏𝟔 = 𝟏𝟎𝟏𝟎𝟐
3.2.2. Décimal  binaire
La conversion s’effectue ici par des divisions entières 3.2.6. Binaire  octal (hexadécimal)
successives par 2. Le test d’arrêt correspond à un quotient nul. Le On effectue un remplacement, de droite vers la gauche, de 3

nombre binaire est obtenu en lisant les restes du dernier vers le (4) bits par le chiffre octal (hexadécimal) correspondant. Si le

premier. nombre de bit n’est pas un multiple de 3 (4), compléter à gauche

Exemple : Conversion de 25 en binaire : avec des zéros.

25 ÷ 2 = 12 𝑟𝑒𝑠𝑡𝑒 1 Exemple : 𝟏𝟎𝟏𝟏𝟎𝟏𝟐 = 𝟓𝟓𝟖 = 𝟐𝑫𝟏𝟔

12 ÷ 2 = 6 𝑟𝑒𝑠𝑡𝑒 0
3.2.7. Champ fixe
6 ÷ 2 = 3 𝑟𝑒𝑠𝑡𝑒 0
La représentation des entiers positifs ou nuls est dite en champ
3 ÷ 2 = 1 𝑟𝑒𝑠𝑡𝑒 1
fixe car le nombre de chiffres utilisés pour représenter un entier
1 ÷ 2 = 0 𝑟𝑒𝑠𝑡𝑒 1
positif 𝑎𝑘−1 𝑎𝑘−2 … 𝑎2 𝑎1 𝑎0 est fixe et égal à𝑘. On peut donc écrire un
On obtient (de bas en haut) : 2510 = 110012
tel nombre dans un registre ou un mot-mémoire de 𝑘 positions.
3.2.3. Octal (hexadécimal)  décimal Dans un registre de k position et pour une base𝑝, seuls les
La conversion se réduit à une addition de puissances de 8 (16) nombres entiers positifs 𝑁 tels que 0 ≤ 𝑁 ≤ 𝑝𝑘 − 1 peuvent être
représentés. On parle alors d’un registre de longueur 𝑘 et de
3.2.4. Décimal  octal (hexadécimal)
capacité𝑐 = 𝑝𝑘 − 1. Pour 𝑘assez grand, on peut écrire 𝑐 ≈ 𝑝𝑘 et
La conversion correspond à des divisions entières successives
donc𝑘 ≈ 𝑙𝑜𝑔𝑝 (𝑐). Cette relation approximée permet d’estimer la
par 8 (16). Le nombre octal (hexadécimal) est obtenu en prenant
longueur d’un registre capable de contenir un nombre donné.
les différents restes du dernier vers le premier

vanel.divin@gmx.fr Page 3
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

C’est le constructeur qui fixe la longueur des registres ou des 3.3. Entiers négatifs
mots-mémoire et donc implicitement, le plus grand nombre positif Les entiers négatifs peuvent être codés selon trois méthodes :
représentable sur une machine. On peut cependant représenter  Signe et valeur absolue ;
des nombres qui dépassent cette valeur maximale en les codant sur  complément logique (ou restreint ou à 1)
plusieurs mots et non pas sur un seul mot. Mais il faut bien voir que le  complément arithmétique ou vrai ou à 2
problème fondamental demeure : les valeurs manipulées par un
3.3.1. Signe et valeur absolue
ordinateur ne peuvent comporter qu’un nombre fixe et limité de
Les nombres sont codés de façon suivante : ±𝒗𝒂𝒍𝒆𝒖𝒓 𝒂𝒃𝒔𝒐𝒍𝒖𝒆.
chiffres, puisqu’elles sont représentées par un nombre limité de bits.
On sacrifie un bit pour représenter le signe. Normalement, 0 est le
Cela peut induire des problèmes au niveau des opérations
code du signe + et 1 celui du signe -. On peut ainsi, avec un mot de
arithmétiques : une addition par exemple peut donner un résultat
𝑘bits, coder les entiers positifs ou négatifs 𝑁tels que :
dépassant la valeur maximale possible
−(2𝑘−1 − 1) ≤ 𝑁 ≤ +(2𝑘−1 − 1)
Exemple :
Cette méthode présente plusieurs inconvénients :
 le zéro a deux représentation distincte 000 … 0et100 … 0,
soit +0 et −0
 les tables d’addition et de multiplication sont
compliquées, à cause du bit de signe qui doit être
La valeur obtenue ne peut être représentée sur six bits ! On
traité à part
parle alors de dépassement de capacité.
Quand il se produit un dépassement de capacité, un 3.3.2. Compléments logique et arithmétique
indicateur de dépassement est mis à 1. Dans certains ordinateurs, On calcule le complément logique (complément à 1) en
les calculs continuent et dans d’autres, une erreur est signalée, remplaçant, pour les valeurs négatives, chaque bit à 0 par 1 et
d’une façon différente d’un constructeur à un autre. vice-versa. Le complément arithmétique est obtenu en
additionnant +1 à la valeur du complément à 1.
Exemple : représentation de (-6) sur 4 bits !

vanel.divin@gmx.fr Page 4
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

+𝟔 = 𝟎𝟏𝟏𝟎 soustractions sont inutiles et il n’y a pas de traitement particulier


𝑬𝒏 𝒔𝒊𝒈𝒏𝒆 𝒆𝒕 𝒗𝒂𝒍𝒆𝒖𝒓 𝒂𝒃𝒔𝒐𝒍𝒖𝒆: − 𝟔 = 𝟏𝟏𝟏𝟎; pour le bit de signe.
𝒆𝒏 𝒄𝒐𝒎𝒑𝒍é𝒎𝒆𝒏𝒕 à 𝟏: − 𝟔 = 𝟏 𝟎𝟎𝟏; Dans une addition, en complément à 1, lorsqu’une retenue
𝒆𝒏 𝒄𝒐𝒎𝒑𝒍é𝒎𝒆𝒏𝒕 à 𝟐: − 𝟔 = 𝟏𝟎𝟎𝟏 + 𝟏 ⇒ −𝟔 = 𝟏𝟎𝟏𝟎 est générée par le bit de signe, elle est rajoutée au résultat
obtenue. Par contre, en complément à 2, on ignore cette retenue.
3.3.3. Plages de valeurs et opérations binaires
Exemple : soustraction de nombres à 4 bits
Tableau 2. 3: Représentation d'entiers signés sur 16 bits

 La représentation (a) est la plus facile à lire, mais le bit de


signe doit être traité à part ;
On peut constater dans le tableau ci-dessus, que l’intervalle  Dans (b) on effectue une addition, y compris le bit de signe,
des entiers 𝑁que l’on peut représenter en complément à 1 est le avec report de la retenue ;
même que pour la représentation en signe et valeur absolue. Pour  Dans (c) on effectue une addition, y compris le bit de signe,
𝑘bits, on a l’intervalle suivant : −(𝟐 𝒌−𝟏
− 𝟏) ≤ 𝑵 ≤ +(𝟐 𝒌−𝟏
− 𝟏) mais on peut laisser tomber la retenue.
Pour la représentation en complément à 2, on a une valeur
Remarque : en complément à 1 ou à 2, un dépssement de capacité
de plus, soit : −𝟐𝒌−𝟏 ≤ 𝑵 ≤ +(𝟐𝒌−𝟏 − 𝟏)
ne se produit que si les retenues générées juste avant le bit de signe
En complément à 1 ou à 2, les opérations arithmétiques sont
et par le bit de signe lui-même sont différentes
avantageuses. En effet, la soustraction d’un nombre se réduit à
Exemple : Addition, en complément à 2 de nombres sur 3 bits
l’addition de son complément. Des circuits réalisant des

vanel.divin@gmx.fr Page 5
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

s’obtient alors en lisant les parties entières, de la première vers la


dernière obtenue.
Exemple :
𝟎, 𝟏𝟐𝟓 × 𝟐 = 𝟎, 𝟐𝟓𝟎 = 𝟎 + 𝟎, 𝟐𝟓𝟎
Il s’est produit un dépassement de capacité : il n’y pas de retenue
𝟎, 𝟐𝟓 × 𝟐 = 𝟎, 𝟓𝟎 = 𝟎 + 𝟎, 𝟓𝟎
générée juste avant le bit de signe alors que le bit de signe en
𝟎, 𝟓 × 𝟐 = 𝟏, 𝟎 = 𝟏 + 𝟎, 𝟎
génère une. Le résultat est donc faux !
On considère les parties entières de haut en bas, donc 𝟎, 𝟏𝟐𝟓𝟏𝟎 =
3.4. Nombres réels 𝟎, 𝟎𝟎𝟏𝟐

Les nombres réels sont les nombres qui comportent une partie Dans les nombres réels, on distingue la représentation en

fractionnaire (inférieure à 1) non nulle. Les changements de base virgule fixe de celle en virgule flottante.

s’effectuent comme suit :


3.4.3. Représentation de nombre réels en virgule
3.4.1. Changement de base binaire décimal fixe
La conversion se fait en additionnant les puissances de 2, Les ordinateurs n’ont pas de virgule au niveau de la machine.
négatives et positives. On traite donc ces nombres comme des entiers, avec une virgule
Exemple : 𝟏𝟎, 𝟎𝟏𝟐 = 𝟏 × 𝟐𝟏 + 𝟎 × 𝟐𝟎 + 𝟎 × 𝟐−𝟏 + 𝟏 × 𝟐−𝟐 = 𝟐, 𝟐𝟓𝟏𝟎 virtuelle gérée par le programmeur. Ce dernier doit connaître et
faire évoluer, au cours des opérations, la place de la virgule. S’il
3.4.2. Changement de base décimal  binaire
veut calculer avec le maximum de précision, il doit apprécier les
La conversion d’un nombre entre 0 et 1 s’effectue par des
ordres de grandeur des résultats intermédiaires, pour les cadrer de
multiplications successives par 2 de nombres purement
façon à conserver le maximum de chiffres significatifs.
fractionnaires. Cet algorithme doit s’arrêter d-s qu’on obtient une
La gestion de la virgule par programme n’est pas facile, on
partie fractionnaire nulle ou bien quand le nombre de bits obtenus
préfère, en général, avoir recours à l’arithmétique en virgule
correspond à la taille du registre ou du mot-mémoire dans lequel on
flottante.
va stocker la valeur fractionnaire. Le nombre binaire cherché

vanel.divin@gmx.fr Page 6
Support de cours Architecture des ordinateurs – Chapitre 2 : Représentation des données

3.4.4. Représentation de nombres réels en


virgule flottante
La représentation en virgule flottante consiste à représenter

les nombres sous la forme suivante : 𝑵 = 𝑴 × 𝑩𝑬


𝒂𝒗𝒆𝒄 𝑩 é𝒕𝒂𝒏𝒕 𝒍𝒂 𝒃𝒂𝒔𝒆 (𝟐, 𝟖, 𝟏𝟎, 𝟏𝟔 … ), 𝑴 𝒍𝒂 𝒎𝒂𝒏𝒕𝒊𝒔𝒔𝒆 𝒆𝒕 𝑬 𝒍′𝒆𝒙𝒑𝒐𝒔𝒂𝒏𝒕
L’exposant est un entier, la mantisse un nombre normalisé,
c’est-à-dire qu’elle comporte le maximum de chiffres significatifs :
en binaire, le premier bit à gauche de la virgule est à 1 et c’est le
seul (par exemple 1,101102). A l’exception de la valeur 0 qui est en
général représentée par le mot 000….0, on a donc toujours :
12 ≤ |𝑀| < 102 𝑠𝑜𝑖𝑡 110 ≤ |𝑀| ≤ 210
Exposant et mantisse doivent pouvoir représenter des
nombres positifs et négatifs. Ils pourraient être codés sous la forme
signe et valeur absolue, complément à 1 ou complément à 2. En
général, la mantisse est de la forme signe et valeur absolue et
l’exposant est sans signe, mais biaisé (ou décalé) pour faciliter les
comparaisons. On a alors la forme générale suivante ;

vanel.divin@gmx.fr Page 7