Vous êtes sur la page 1sur 68

Chapitre 03: La

représentation de
l’information
Structure Machine 1

Ikram Remadna (PhD)


Plan

• Introduction

• Le codage binaire

• Représentation des nombres entiers

• Représentation des nombres fractionnaires

• Représentation des caractères


Introduction

• Quelle que soit la nature de l'information traitée par un ordinateur


(image, son, texte, vidéo), elle l'est toujours représentée sous la forme
d'un ensemble de nombres binaires

• Le codage de l’information permet d’établir une correspondance entre la


représentation externe de l’information et sa représentation binaire
Le codage binaire

On a plusieurs modes de représentation:


• Codage binaire pur
• Codage binaire BCD (Binary Coded Decimal)
• Codage binaire Réfléchi (ou de GRAY)
• Codage binaire Excède de trois
Le codage binaire pur
C’est la représentation en base 2

• C’est un code pondéré puisque il obéit à la pondération du système


binaire.

• Ses dérivés, qui sont les systèmes à base 8 et 16 sont aussi des codes
pondérés.
Le codage binaire pur

• Exemple: (42)10 sur 8 bit= ( 00101010)2


sur 16 bits=(0000000000101010)2
sur 4 bits=ERREUR (Overflow)

Pour un nombre composé de plusieurs chiffres: sa représentation binaire


dépond de ce nombre en entier (pas des chiffres qui le composent)
Le code DCB (Décimal codé binaire)
• Pour passer du décimal au binaire , il faut effectuer des divisions
successives. Il existe une autre méthode simplifiée pour le passage du
décimal au binaire

• Ce code utilise 4 bits dont il utilise les 10 premières combinaisons afin


de représenter les 10 symboles du système décimal.

• Ces 10 premières combinaisons sont appelées: tétrades.

• Les pseudo-tétrades, les 6 dernières combinaisons (de 1010 à 1111) ne


sont pas utilisées.
Le code DCB (Décimal codé binaire)
Le code DCB (Décimal codé binaire)

• Chaque tétrades utilisée représente un digit (unité, dizaine, centaine,


ou millier).

Digits Milliers Centaines Dizaines Unités


Code BCD a15 a15 a15 a15 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0

Pondération 8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2


1
Le code DCB (Décimal codé binaire)
• Exemple: (42)10 =(0100 0010)BCD
4 2

Pour un nombre composé de plusieurs chiffres: sa représentation


binaire dépond de chaque chiffre qui compose ce nombre.
• Utilisé en électronique pour l’affichage des chiffres
Addition BCD
Pour additionner deux nombres codés en BCD, suivez ces étapes:
• Étape 1 : Additionnez les deux nombres BCD en utilisant les règles
de l'addition binaire.
• Étape 2 : Si la somme des 4 bits est égale à 9 ou moins, alors c'est un
nombre BCD valide.
• Étape 3 : Si la somme des 4 bits est supérieure à 9, c'est un résultat
invalide. Dans ce cas, ajoutez 6 (0110) aux 4 bits pour sauter les six
états invalides. Si une retenue est générée lorsque vous ajoutez 6,
ajoutez simplement cette retenue au groupe de 4 bits suivant.
Addition BCD
• Exemple:
Additionner les deux nombres BCD 01000010 et 01101001

01101001
+
01000010
Le code excédant de 3
• Chaque mot s’obtient en ajoutant 0011 (3) au mot binaire correspondant.

• Pour obtenir le premier élément du code BCD excédant 3, on ajoute au


premier élément du code BCD la quantité 3.

• Soit( 0011), pour avoir (0000+0011)BCD EX3=(0011) BCD EX3 =(0000) BCD

• Utilisé pour faciliter certains opérations arithmétiques comme l’addition


Le code excédant de 3
Le code binaire réfléchi (ou code DE GRAY)

• Le passage d’un chiffre représenté au chiffre immédiatement suivant ne


diffère que d’un seul bit.

• L’utilisation de ce code réduira les erreurs dans les conversions


analogiques/numériques.

• Compter en binaire réfléchi: le principe (0)10=(0)GR et (1)10=(1)GR


Puis on fait la symétrie du code déjà obtenu plus le nouveau bit à 1 (à
gauche)
Le code binaire réfléchi (ou code DE GRAY)
Le code binaire réfléchi (ou code DE GRAY)
• Conversion binaire pur vers binaire réfléchi:
Le principe consiste à prendre le bit le plus à gauche et le mettre dans
sa position correspondante, puis les bits suivants sont une addition
entre le bit précédent avec le suivant du binaire pur, si le résultat et 10 (1+1)
on met 0
Exemple:
(1011)2=(?)GR
=(1110)GR
+ + +
1 0 1 1
1 (1+0) (0+1) (1+1)
1 1 1 0
Le code binaire réfléchi (ou code DE GRAY)
• Conversion binaire réfléchi vers binaire pur :
Le principe consiste à prendre le bit le plus à gauche et le mettre
dans sa position correspondante, puis les bits suivants sont une
addition entre le bit précédent du binaire pur (résultat) avec le suivant du
binaire réfléchi, si le résultat et 10 (1+1) on met 0
Exemple:
(1110) GR =(?)2
=(1011)2
1 + 1 + 1 + 0

1 0 1 1
Le code binaire réfléchi (ou code DE GRAY)
Incrémentation:
Si le nombre des « 1 » est paire, on inverse le dernier chiffre
sinon on inverse le chiffre situé à gauche du 1 le plus à droite
Exemple:

4 🡪 5 13 🡪 14 10 🡪 11
110 🡪 111 1011 🡪 1001 1111 🡪 1110
Représentation des nombres entiers
• Il existe deux types d’entiers :
– les entiers non signés ( positifs )
– et les entiers signés ( positifs ou négatifs )

• Problème : Comment indiquer à la machine qu’un nombre est négatif ou


positif ?

Il existe 3 méthodes pour représenter les nombres négatifs :


– Signe/ valeur absolue
– Complément à 1( complément restreint )
– Complément à 2 ( complément à vrai )
Représentation signe / valeur absolue
• Sur n bits , alors le bit du poids fort est utilisé pour indiquer le
signe :
1 : signe négatif
0 : signe positif
• Les autres bits ( n -1 ) désignent la valeur absolue du nombre
Exemple:
Représentation signe / valeur absolue
• Exemple: représenter sur 8 bits les valeurs +43, -51, -128
Sur 8 bits donc le 1er bit pour le signe, les 7 restants pour la Valeur Absolue

(43)10 = (101011)2=(00101011)BS
|-51|=(51)10 = (0110011)2=(10110011)BS
|-128|=(128)10 = (10000000)2🡺 Overflow, nécessite 9 bits
Représentation signe / valeur absolue
• Sur 3 bits on obtient : Les valeurs sont comprises entre
Signe VA Valeur -3 et +3
0 00 +0
0 01 +1
0 10 +2
0 11 +3
1 00 -0 Sur n bits , l’intervalle des valeurs qu’on
1 01 -1 peut représenter
1 10 -2 en système en valeur absolue:
1 11 -3 (n -1) (n -1)
-(2 -1) ≤ N ≤ +(2 -1 )
Représentation signe / valeur absolue

Avantages et inconvénients:
• Représentation assez simple .
• Le zéro possède deux représentations +0 et -0 ce qui conduit à des
difficultés au niveau des opérations arithmétiques.
• Pour les opérations arithmétiques il nous faut deux circuits : l’un pour
l’addition et le deuxième pour la soustraction .

L’idéal est d’utiliser un seul circuit pour faire les deux opérations, puisque :
X-Y= X+(-Y)
Représentation en complément à un
• On appel complément à un d’un nombre N un autre nombre N’ tel que :
n
N+N’=2 -1
n : est le nombre de bits de la représentation du nombre N
Exemple:
Soit N=1010 sur 4 bits donc son complément à un de N :
4
N’= (2 - 1) - N

N’=(16-1 ) 10-(1010)2= (15 )10 - (1010)2 = (1111)2 – (1010)2 = 0101


Représentation en complément à un
• Sur 3 bits:
Valeur en Valeur en
CA1 binaire
Valeur en
décimal
Dans cette représentation , le bit du
000 000 +0 poids fort nous indique le signe:
001 001 +1 (0 : positif , 1 : négatif ).
010 010 +2
011 011 +3 On remarque que dans cette
100 -011 -3 représentation le zéro possède aussi
101 -010 -2 une double représentation ( +0 et –0 )
110 -001 -1
111 -000 -0
Représentation en complément à un
Sur n bits , l’intervalle des valeurs qu’on peut représenter
en système en CA1:
(n -1) (n -1)
-(2 -1) ≤ N ≤ +(2 -1 )

Exemple: sur 3 bits, les valeurs sont comprises entre -3 et +3


Représentation en complément à un
• Pour trouver le complément à un d’un nombre, il suffit d’inverser tous les bits de
ce nombre: si le bit est un 0 mettre à sa place un 1 et si c’est un 1 mettre à sa
place un 0 .
Exemple:
Sur 8 bits, les entiers seront représentés comme suit :
(+21)10 = (00010101)C1(8bits) (−21)10 = (11101010)C1(8bits)
(+36)10 = (00100100)C1(8bits) (−36)10 = (11011011)C1(8bits)

• Le complément à un du complément à un d’un nombre est égale au nombre lui


même : CA1(CA1(N))= N
Représentation en complément à un
• Exemple:
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à 1 sur 6 bits ?

Le bit poids fort indique qu'il s'agit d'un nombre négatif.

• Valeur = - CA1(101010)
= - (010101)2= - ( 21)10
Représentation en complément à 2
• Soit X un nombre sur n bits alors :
n n
X + 2 = X modulo 2
Le résultat sur n bits la même valeur que X :
n
X+2 =X
Exemple: soit X = 1001 sur 4 bits
4
2 = 10000
Si on prend le résultat sur 4
bits on trouve la même valeur
de X= 1001
Représentation en complément à 2
• Si on prend deux nombres entiers X et Y sur n bits , on remarque que
la soustraction peut être ramener à une addition :

X – Y = X + (-Y) trouver une valeur équivalente à -Y ?

n n
X – Y = (X + 2 ) – Y = X + (2 – 1) – Yn + 1 n
n
On a Y + CA1(Y)= 2 – 1 donc CA1(Y) = (2 – 1) – Y
On obtient :
X– Y = X + CA1(Y) + 1
Représentation en complément à 2
• La valeur CA1(Y)+1 s’appelle le complément à deux de Y :
CA1(Y)+1 = CA2(Y)
Et enfin on va obtenir :
X - Y = X+ CA2(Y) 🡪 transformer la soustraction en une addition.
Représentation en complément à 2
• Sur 3 bits: Sur 3 bits on remarque que les valeurs sont
Valeur en
CA2
Valeur en
binaire
Valeur en
décimal
comprises entre -4 et +3
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 -100 -4
Sur n bits , l’intervalle des valeurs qu’on peut
101 -011 -3 représenter en système en CA2:
110 -010 -2 (n -1) (n -1)
-(2 ) ≤ N ≤ +(2 -1 )
111 -001 -1
Représentation en complément à 2
• Dans cette méthode, les entiers négatifs sont représentés en ajoutant
la valeur 1 à leur représentation en complément à 1.

• Dans cette représentation , le bit du poids fort nous indique le signe.

• On remarque que le zéro n’a pas une double représentation.

• La représentation en complément à 2 est la représentation standard


sur les ordinateurs pour exprimer les nombres entiers négatif.
Représentation en complément à 2
• On peut aussi obtenir le complément vrai d'un nombre en calculant
d'abord son complément restreint et en ajoutant ensuite 1.
• Le complément vrai (également appelé complément à 2) est obtenu
en inversant tous les bits à partir de la droite et on ajoutant 1 au
résultat

Complément vrai = complément restreint + 1


Représentation en complément à 2
• Exemple 01:
Trouver le complément à 2 : +(01000101)2 sur 8 bits ?

• Exemple 02:
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à deux sur 6 bits ?
Représentation des nombres réels
• Problème : comment indiquer à la machine la position de la virgule ?

• Un nombre réel est constitué de deux parties : la partie entière et la partie


fractionnelle ( les deux parties sont séparées par une virgule )

• Il existe deux méthodes pour représenter les nombre réel :


1) Virgule fixe : la position de la virgule est fixe
2) Virgule flottante : la position de la virgule change ( dynamique )
Représentation en virgule fixe
• Dans cette représentation la partie entière est représentée sur n bits et la
partie fractionnelle sur p bits , en plus un bit est utilisé pour le signe.
Exemple: si n=3 et p=2 on va avoir les valeurs suivantes
Signe Partie Partie
entière fractionnaire

0 000 00 +0,0 Dans cette représentation


0 000 01 +0,25 les valeurs sont limitées
0 000 10 +0,5
0 000 11 +0,75 et nous n’avons pas une
0 001 00 +1,0 grande précision
. . . .
. . . .
Représentation en virgule fixe
• Exemple:
(54,25)10 , (10,1001)2 , (A1,F0B)16
Supposant une base b et un nombre N, il est représenté en format virgule
fixe, par la formule suivante:
N=
Représentation en virgule fixe
• Exemple:
Représentation en virgule flottante
• En notation scientifique dite "à virgule flottante" :
- 0,006234 s'écrit : - 6.234 e-3 ou –- 36.234 E-3
Cette notation est l'équivalent de: -6,234 * 10

• le nombre est précédé de son signe ( ici - )


• la partie entière (ici 6) en valeur absolue est un nombre d'un seul chiffre de 1
à 9 (pas zéro)
• la partie décimale (ici 234) est séparée de la partie entière par un point ou
une virgule.
• un-3exposant décimal entier relatif suit la lettre e ou E : e-3 ou E-3 signifient 10
Représentation en virgule flottante
• En binaire, le nombre r = −123,5 vaut r = −1111011, 1
6
• Et donc en notation scientifique −1,1110111*2 .

• Dans ce cas, le signe vaut ′−′, la mantisse vaut M = 1, 1110111 et


l’exposant vaut 6.

• Dans la notation scientifique binaire, le chiffre avant la virgule est


toujours 1 : on peut donc l’omettre dans le codage des flottants
concernant la mantisse. On parle de 1 caché.
Représentation en virgule flottante
Dans cette représentation sur n bits :
– La mantisse est sous la forme signe/valeur absolue
• 1 bit pour le signe
• et k bits pour la valeur.
– L’exposant ( positif ou négatif ) est représenté sur p bits .
Signe Exposant Mantisse

Pour la représentation de l’exposant on utilise :


1) Le complément à deux
2) Exposant décalé ou biaisé
Représentation en virgule flottante
• La représentation des nombres fractionnaires la plus répondue dans
les ordinateurs d’aujourd’hui est celle en virgule flottante selon la
norme IEEE 754.
Dans cette représentation les nombres fractionnaires sont représentés
sous la forme suivante :

Signe (S) Exposant décalé(ED) Mantisse(M)


1 bit n bits m bits
L’exposant décalé ED = E + D. Où D est le décalage (biais) de l’exposant,
Taille de ED-1

c’est une valeur fixe donnée par la formule suivante : D = 2 - 1


Représentation en virgule flottante
La norme IEEE 754 possède 3 formats de représentation:
• Format simple précision (32 bits):
S ED M
1 bit 8 bits 23 bits

• Format double précision (64 bits):


S ED M
1 bit 11 bits 52 bits

• Format précision étendue (80 bits):


S ED M
1 bit 15 bits 64 bits
Représentation en virgule flottante
• Exemple 1: La représentation du nombre réel (−42,375)10 selon la
norme IEEE754 en simple précision sera donc calculée comme suit :
(−42, 375)10 = (−101010, 011)2.
5
(−101010, 011)2 = − 1, 01010011 × 2 .
ED = E + D = 5 + 127 = (132)10 = (10000100)2

1 10000100 01010011000000000000000
Représentation en virgule flottante
• Exemple 2: La valeur décimale représentée en virgule flottante par le
code (C26D0000)IEEE754 sera donc calculée comme suit :

1 10000100 11011010000000000000000

ED=(10000100)2=(132)10 🡺 E=ED-D=132-127=(5)10.

- -
E 5
N= 1, M×2 = 1, 1101101×2 =(-111011,01)2
(-111011, 01)2 = (-59, 25)10
Représentation des données
alphanumériques
• Les données alphanumérique sont des données non numériques
incluant des lettres alphabétiques majuscules et minuscules , des
symboles de ponctuation (& @ , . ; # ", etc.), et des chiffres.

• La représentation des données alphanumériques est réalisée à partir


d’une table de correspondance indiquant la configuration binaire
représentant chaque caractère.

• Les deux codes les plus courants dans la représentation des données
alphanumériques sont le code ASCII et le code UNICODE
Code Extended Binary Coded Decimal
Interchange Code (EBCDIC)

• C’est un code qui est fréquemment employé. Il utilise 8 bits de codage


sans bit de parité.

8
• Cela permet d ’avoir 2 combinaisons qui constituent:
Code EBCDIC
Code American Standard Code for Information
Interchange (ASCII)

• Le code ASCII de base représentait les caractères sur 7 bits


(c'est-à-dire 128 caractères possibles, de 0 à 127). Le
huitième bit est un bit de parité (Le huitième bit est libre).

• Exemple : A = (41)16 = (65)10 = (01000001)

• Ses résultats sont obtenu par une table dite « Table ASCII
»

• Pour trouver la correspondance caractère <>


• on peut représenter 128 caractères :
⮚ Les codes 0 à 31 ne sont pas des caractères. On les appelle caractères de
contrôle car ils permettent de faire des actions telles que: Retour à la
ligne(CR) ou Bip sonore (BEL).

⮚ Les codes 48 à 57 représentent les chiffres.

⮚ Les codes 65 à 90 représentent les majuscules.

⮚ Les codes 97 à 122 représentent les minuscules.

⮚ Le reste des codes représente les caractères spéciaux.


Table ASCII en Décimale
Table ASCII en Hexadécimale
Table ASCII
Limites du ASCII :
• Représente les caractères basés sur l'anglais
• Manque des caractères accentués
• Ne représente pas les caractères multilingues
• Solution : ASCII étendu par l'utilisation du bit libre, donc sur 8 bits on
peut représenter 256 au lieu 128 caractères.
ASCII étendu
ASCII étendu Arabe
Le code UNICODE
• L’UNICODE16 code les caractères sur 16 bits, ce qui permet donc de coder
65 536 ( 2 ) caractères différents.

• Il a été proposé essentiellement pour unifier les différent encodage de


caractères existants mais aussi pour permettre d’incorporer tous les
alphabets existants (latin, arabe, chinois, cyrillique, bengali, etc.) dans une
seule table d’encodage.

• Il est compatible avec le code ASCII. Les 256 premiers caractères Unicode
sont les mêmes que ceux de la table ASCII (basique et étendu).
Le code UNICODE
• La table suivante montre les plages Unicode de quelques alphabets.

Alphabet Plage des codes Alphabet Plage de codes

Latin [U+0000 à U+024F] Hébreu [U+0590 à U+05FF]


Grec et Copte [U+0370 à U+03FF] Arabe [U+0600 à U+06FF]
Cyrillique [U+0400 à U+052F] Maldivien [U+0780 à U+07BF]
Arménien [U+0530 à U+058F] Ethiopien [U+1200 à U+137F]
Table des caractères Unicode Latin de base
Table des caractères Unicode Arabe
Le code UNICODE
• Unicode se contente de recenser, nommer les caractères et leur attribuer
un numéro. Mais il ne dit pas comment ils doivent être codés en
informatique.
• Plusieurs codages des caractères Unicode existent :
✔ UTF-32 qui code chaque caractère sur 32 bits (soit quatre octets)
✔ UTF-16 qui code chaque caractère sur 16 ou 32 bits (soit deux ou quatre octets)
✔ UTF-8 qui code chaque caractère sur 8, 16, 24 ou 32 bits (soit un, deux, trois ou
quatre octets).
Le plus couramment utilisé, notamment pour les pages Web, est UTF-8.
Unicode UTF-8
• UTF-8 est un encodage des caractères, basé sur UNICODE, de longueur
variable qui utilise de 1 à 4 octets par symbole.

• Le premier octet sert à encoder les caractères ASCII, donnant


ainsi au jeu de caractères une totale compatibilité avec ASCII.

• Chaque caractère dont le point de code est supérieur à 127


(caractère non ASCII) se code sur 2 à 4 octets.
Unicode UTF-8
Unicode UTF-8
• Les caractères ayant une valeur scalaire de 0 à 127 (point de code
attribué de U+0000 à U+007F) sont codés sur un seul octet dont le
bit de poids fort est nul.

• Les points de code de valeur scalaire supérieure à 127 sont codés


sur plusieurs octets.

• Les bits de poids fort du premier octet forment une suite de 1 de


longueur égale au nombre d'octets utilisés pour coder le caractère,
les octets suivants ayant 10 comme bits de poids fort.
Unicode UTF-8
Exemple 1 : Coder les caractères : KÂ∆ en UTF-8
• K = U+004B = (1001011)2 il y a 7 bits donc nécessite 1 octet, selon le
tableau : K = (01001011)UTF-8
• Â=U+00C2=(11000010)2 il y a 8 bits donc nécessite 2 octets, selon
le tableau 00011 000010
1èr octet 2ème octet
(1100001110000010) UTF-8
On ajoute les bits fixes:
• ∆ = U+2206 = (10001000000110)2 il y a 14 bits donc nécessite 3 octets, selon le tableau

0010 001000 000110


1èr octet 2ème octet 3²ème octet

on ajoute les bits fixes : (111000101000100010000110) UTF-8


Unicode UTF-8
Exemple 2 : Trouver le texte représenté par le code suivant : (E288864BC382) UTF-8

(E288864BC382)16 =111000101000100010000110010010111100001110000010
• Le code binaire commence par 1110 donc 3 octets : on compte 24
bits : 111000101000100010000110 après on enlève les bits fixes :
(10001000000110)2 =(2206)16 On ajoute U+2206 = ∆
• La suite des bits qui reste commence par 0 donc 1 octet : on compte 8 bits
01001011 = (1001011)2 =(4B)16 = U+004B = K
• La suite des bits qui reste commence par 110 donc 2 octet : on compte 16 bits :
1100001110000010 après on enlève les bits fixes : (11000010) 2=(C2)16
On ajoute U+00C2 = Â
Donc le texte est :∆KÂ

Vous aimerez peut-être aussi