Representation Des Nombres
Representation Des Nombres
Representation Des Nombres
1. Systèmes de numération
1.1. Le système décimal: système de base 10.
1
1.3. Le système hexadécimal: système de base 16.
2
2. Le transcodage: On appelle transcodage le passage d’un système de base B1 vers un système de
base B2.
Définition 1 : On donne le nom de CODAGE à l’opération qui consiste à représenter dans un certain
code (C), les nombres donnés dans un système de numération décimal.
Définition 2 : On donne le nom de DECODAGE à l’opération qui consiste à représenter dans le
système de numération décimal les nombres donnés dans un certain code (C).
Définition 3 : Soient deux codes Cl et C2, on appelle TRANSCODAGE de Cl à C2, l’opération qui
consiste à déterminer la représentation dans le code (C2) de tout nombre dont on connaît la
représentation dans le code Cl.
3
2.2. Passage du système décimal a un système de base B
Remarque: Pour passer du système octal ou hexadécimal au système binaire, il suffit de développer
chaque coefficient du nombre sur trois ou quatre positions. Pour l'opération inverse, il suffit de
regrouper par trois ou quatre chiffres binaires.
5
Exemple 02:
Avec 8 bits on représente les nombres de 0 à 28-1 ⇒ 0 . . . 255.
Avec 16 bits on représente les nombres de 0 à 216-1 ⇒ 0 . . . 65535.
Avec n bits on représente les nombres de 0 à 2n-1.
3.1.2. Le codage binaire réfléchi( Code Gray): La règle de construction est la suivante: On écrit les
2n combinaisons qui représentent les nombres entiers de 0 à 2n-1. Pour obtenir les combinaisons
suivantes, de 2n à 2n+1-1, on réécrit les mêmes 2n combinaisons dans l’ordre inverse, en ajoutant
un 1 à la gauche de chacune d’elles.
Exemples :
Propriétés:
P1 : Le code binaire réfléchi n’est pas pondéré.
P2 : La règle de construction montre que le code est continu et cyclique :
-Continu : Il s’agit d’un code dont toutes les combinaisons consécutives sont deux à deux adjacentes
(un seul bit change de valeur pour passer d’une combinaison à l’autre).
-Cyclique : Il s’agit d’un code dont la dernière combinaison est adjacente à la première.
6
3.1.3. Le système décimal codé binaire (DCB): Nous représentons chaque chiffre décimal au moyen
d’une combinaison de chiffres binaires. Pour disposer de dix combinaisons différentes il faut au moins
4 bits. On affecte au codage de chaque chiffre décimal un codage binaire suivant la pondération 8, 4, 2,
1. Autrement dit chaque chiffre décimal est codé par son équivalent en binaire naturel.
Exemple :
Nd = 1 9 9 3
Ndcbn = 0001 1001 1001 0011
Cette représentation est intéressante dans le cas où l’on veut réaliser des opérations de
multiplication et de division. Par contre elle présente des inconvénients pour des opérations addition et
de soustraction du fait qu’il existe une ambiguïté au niveau d u codage du zéro (+0 et -0).
3.2.2. Représentation en complément a 1: les nombres positifs sont représentés comme dans la
représentation binaire signé tandis que les négatifs sont obtenus en complémentant leurs
valeurs absolus a 1.
7
3.2.3. Représentation en complément a 2: les nombres positifs sont représentés comme dans le
représentation binaire signé tandis que les négatifs sont représentés en complément a 1 puis on rajoute
1. Ce codage permet de représenter les nombres de -2n-1 jusqu'à 2n-1 – 1 sur n bits.
Remarque :
• On considère un nombre N = |n| codé sur p bits:
p+1
Si n ≥ O alors n = N sinon Si n <0 alors n = 2 -N
Conséquences:
1- N est codé sur p bits d’où N ≤ 2p– 1
p
or dans le cas où n<O nous avons N = 2p+1– n d’où : 2p+1 – n ≤ 2 – 1
p+1 p
2 -2 +1 ≤ n
p
2 (2-1) +1 ≤ n
p
2 +1 ≤ n
Ainsi n négatif est codé sur p+1 bits et le bit de poids fort vaut 1 alors n = 1ap-1 ap-2 . . . a1 a0
Afin d’uniformiser l’écriture nous coderons également n positif sur p+1 bits, où le bit de poids
fort prendra la valeur 0 :
n>0 ⎯→ n = 0ap-1 ap-2 . . . a1 a0
n<0 ⎯→ n = 1 ap-1 ap-2 . . . a1 a0
Or la valeur 2p+1 s’exprime sur p+2 bits et par conséquent nous ne sommes plus cohérents avec
la capacité que nous nous étions fixés pour exprimer les nombres. La seule représentation de la valeur
zéro est 00 ... 0. Avec ce code nous n’avons plus d’ambiguïté ⇒ Le 0 est unique.
Exemple01:
n = +8 ⇒ N = |n| = 8 ⎯→ n = 0 1000
n= -8 ⇒ N = |n| = 8 ⎯→ n = 25-8=24 (10) = 1 1000
8
Tableau représentant l’ensemble des valeurs codées sur p = 3 bits
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 O
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8
Remarque: On obtient les mêmes résultats en appliquent la règle de définition qui pour exprimer le
complément à 2 d’un nombre consiste à complémenter tous les bits puis de rajouter 1.
Exemple:
17,125(10) = 10001,001(2) 1 0 0 1 0 0 0 1
= 10001001 x 2-3
9
Exemple:
3.3.2. Représentation en virgule flottante: Nous avons l’habitude de représenter les nombres flottants
suivant la “notation scientifique” ou encore la “représentation semi-logarithmique”. Cette
représentation est nécessaire pour les nombres non entiers ou bien très grands ou encore très petits. Ils
e
sont alors exprimés sous la forme : N = M.B , où M s’appelle la mantisse, B représente la base et e
l’exposant.
L inconvénient de cette représentation est que l’écriture d’un nombre n’est pas unique. En effet
300 000 = 3. 105 = 300.103 = ... , il est donc nécessaire de normaliser l’écriture. Nous dirons que
l’écriture est normalisée si : M < 1. Par conséquent M sera de la forme 0, ... où le premier chiffre après
la virgule est forcément différent de 0. Nous écrirons alors : 0,3. 106.
La transposition de cette écriture au sein d’une machine numérique revient à mettre les nombres
sous la forme : N = M.2x, où M s’appelle la mantisse et x représente l'exposant.
a) Exposant et mantisse en binaire signé: Cette représentation revient à affecter un bit de signe et
représenter la mantisse par sa valeur absolue, la même représentation peut être adopter pour l’exposant.
Exemple:
N= -42,75(10)= -101010,11(2) = -0.10101011 x 26
Signe de le mantisse = - ⇒ 1
Signe l’exposant = + ⇒ 0
Mantisse = 10101011000000000000000
Exposant = 0000110
⇒ la représentation de N est: 11010101100000000000000000000110 = 32540000006(8)
10
b) Exposant biaisé : Parmi les différentes conventions de représentation des nombres flottants, celle
qui est la plus souvent utilisée consiste à représenter la mantisse sous la forme de sa valeur absolue plus
un bit pour le signe. La représentation générale est la suivante :
Le signe : il est codé sur un bit et en générale il prend la valeur 0 pour indiquer un nombre positif et la
valeur i pour indiquer un nombre négatif.
La mantisse : le nombre de bits utilisés pour son codage donne la précision avec laquelle le nombre est
enregistré et définit par conséquent le nombre de chiffres significatifs.
Exemple:
Pour 4 bits ⇒ le biais = 24-1 = 23 = 8
Pour un exposant sur n bits ⇒ le biais = 2n-1
- La caractéristique c = e + ∆,
Dans notre cas ∆ = 8 ⇒ pour e= +7 donc c= 7+8 = 15
Remarque: La représentation de la caractéristique est la même que celle en complément a 2 sauf que le
signe est inversé.
11
La représentation d’un nombre réel en virgule flottante avec un exposant biaisé est réalisée
sur 32 bits avec:
Exemple:
-0,25(10) = - 0,01(2) = - 0.1 x 2-1
Signe de le mantisse = - ⇒ 1
Caractéristique c= e + ∆ = -1 + 27 = -1 +128 = 127 = 01111111
Mantisse = 10000000000000000000000
⇒ la représentation de N est: 10111111110000000000000000000000 = 27760000000(8)
Remarque :
1- La connaissance du nombre de bits de l’exposant et du biais nous permet de définir les bornes
inférieures et supérieures de la valeur absolue des nombres flottants :
- La borne inférieure : M = 1/2 et c = 0 d’où N= 1/2.2-∆ soit : N = 2-(∆+1)
- La borne supérieure : M ≅ 1 et c = 2P-1 d’où e = 2p-1- ∆ soit : N ≅ 2(c-∆)
2- L’addition de deux nombres exige une dé normalisation du plus petit opérande pour l’amener à ce
qu’il ait le même exposant que l’autre opérande. Une fois l’opération réalisée il faut “re-normaliser” le
résultat.
c) Format IEEE :
c.1) Simple précision : le nombre réel est représenté sur 32 bits comme suit :
Sachant que la mantisse est normalisé (0.5 ≤ M<1); le premier bit est toujours a 1 alors il n’est pas
nécessaire de le représenter afin de gagner en précision.
c.1) Double précision : le nombre réel est représenté sur 64 bits comme suit :
12
3.4. Représentation des caractères
La plupart des codes utilisés aujourd’hui pour représenter les caractères alpha-numériques sont
exprimés au moyen de huit bits. Les principales contraintes que ces codes doivent intégrer sont :
• Une représentation des chiffres pas trop délicate à manipuler. Elle doit être en fait une simple
extension des chiffres décimaux.
• Une représentation des lettres qui facilite leur manipulation. Par exemple des codes de valeurs
numériques croissantes pour exprimer les lettres suivant leur ordre alphabétique.
• Une certaine redondance pour faciliter la détection, voire la correction d’éventuelles erreurs de
transmission.
Le code ELA : Electronic Industry Association. Il s’agit d’un codage sur 7 bits plus un bit de
contrôle de parité impaire. Il est utilisé depuis 1961 pour certaines machines à commande numérique.
Le code BCDIC : Binary Coded Decimal Interchange Code, Il est utilisé initialement sur les
premiers IBM. Il se compose de 47 symboles: 26 lettres, 10 chiffres, et des caractères graphiques. Les
caractères sont codés sur 6 bits et ne comportent pas de minuscules ni de caractères accentués.
L’évolution de ce code est 1’EBCDTC.
Le code ERCDIC : Extended BCDJC. Cette fois les caractères sont codés sur 8 bits. Le codage
des caractères est le suivant :
- les lettres minuscules de a à z sont codées par les valeurs de 8lh à A9h.
- les lettres majuscules de A à Z sont codées par les valeurs de Clh à E9h.
- les chiffres de O à 9 sont codés par les valeurs de F0h à F9h.
Le code ASCII : American Standard Code for Information Interchange. Aujourd’hui tout le
monde, ou presque, s’est rallié à cette représentation dont le codage sur 8 bits est le suivant :
- les caractères de 1 à 37 sont des caractères spéciaux de commande d'appareil ou nécessaire à
l'établissement du processus de transmission.
-les lettres minuscules de a à z sont codées par les valeurs de 61h à 7Ah.
-les lettres majuscules de A à Z sont codées parles valeurs de 41h à 5Ah.
-les chiffres de O à 9 sont codés par les valeurs de 30h à 39h.
13