Vous êtes sur la page 1sur 13

Chapitre II :

Codage et représentation de données

Pour représenter les données sur machine en binaire, on peut distinguer certaines normes de
représentation et de codage. :

 Représentation des nombres entiers signés (relatifs) en :


o Signe et valeur absolue (SVA)
o Complément à 1 (C1)
o Complément à 2 (C2)
 Opérations arithmétiques en C2.
 Codage de l’information
o Code BCD
o Code ASCII
o L’UNICODE
o Code Gray

II.1. Représentation sur machine des nombres entiers signés

±(N)2 → représentation sur machine ?

II.1.1. Représentation en signe et valeur absolue SVA :

a/ ±(N)2 → ( ?)SVA

Soit N un nombre à représenter sur n bits, dans la représentation SVA :

 On consacre le bit de poids fort au bit du signe.

0 : pour le signe positif

1 : pour le signe négatif

 Les bits restants désignent la valeur absolue de N.


Exemple :

 Représenter +(11)2 et -(11)2 en SVA sur une machine de 4 bits.

Donc

Signe (N)2

+ (11)2  (0011)SVA

- (11)2  (1011)SVA

b/ ( X)SVA → ±( ?)2

Exemples :

Sur une machine de 5 bits, retrouver la valeur binaire puis la valeur décimale de (01111)SVA et
(11101)SVA.

 (01111)SVA  ±( ?)2  ±( ?)10

(01111)SVA= +(1111)2 = + (15)10

 (11101)SVA  ±( ?)2  ±( ?)10

(11101)SVA= -(1101)2 = -(13)10


II.1.2. Représentation sur machine en Complément à 1

a/ ±(N)2 → ( ?)C1

Règle :

1/ le C1 d’un nombre positif sera le nombre lui-même.

2/ le C1 d’un nombre négatif est obtenu par le calcul du C1.

 Calcul du C1 :

Il suffit d’inverser tous les bits du nombre

- (0010)2  ( ?)C1  (1101)C1

Exemples :

Sur une machine de 6 bits, représenter +(9)10 et -(12)10 en C1.

Sur 6 bits Représentation

+ (9)10  + ( ?)2 ( ?)C1

Sur 6 bits Lui même


+ (9)10  +(001001)2  (001001)C1

Sur 6 bits Calculer C1


- (12)10  - (001100)2  (110011)C1

b/ ( X)C1 → ±( ?)2
Règle :

Le bit de poids fort nous indique le signe :

 0  positif
 1  négatif

Exemples : Retrouver la valeur binaire puis la valeur décimale de (01101)C1 et (10111)C1.


Valeur
 (01101)C1  ±( ?)2  ±( ?)10
Lui même
(01101)C1 = +(01101)2 = + (13)10
 (10111)C1  ±( ?)2  ±( ?)10
Inverser

(10111)C1 = -(01000)2 = -(8)10

II.1.2. Représentation sur machine en Complément à 2

a/ ±(N)2 → ( ?)C2

Règle :

1/ le C2 d’un nombre positif sera le nombre lui-même.

2/ le C2 d’un nombre négatif est obtenu par le calcul du C2.

 Calcul du C2 :

Il suffit d’inverser tous les bits après le premier 1 (à partir de la droite)

- (0101)2  ( ?)C2

- (0101)2  (1011)C2

Inverser

Exemples :

Sur une machine de 6 bits, représenter +(15)10 et -(15)10 en C2

Sur 6 bits Représentation

+ (15)10  + ( ?)2  ( ?)C2

Sur 6 bits Lui même


+ (15)10  +(001111)2  (001111)C2

Sur 6 bits

- (15)10  - (001111)2  (110001)C2

Inverser
b/ ( X)C2 → ±( ?)2
Règle :

Le bit de poids fort nous indique le signe :

 0  positif
 1  négatif

Exemples

Retrouver la valeur binaire puis la valeur décimale de (001001)C2 et (101010)C2


Valeur
 (001001)C2  ±( ?)2  ±( ?)10
Lui même
(001001)C2 = +(001001)2 = + (9)10
Valeur
 (101010)C2  ±( ?)2  ±( ?)10

(101010)C2 = -(010110)2 = (22)10

Inverser

Intervalle de représentation d’un entier signé en C2

- (2(n-1)) ≤ (N)10 ≤ + (2(n-1) -1)

Exemples
 n=3 on a - 4 ≤ (N)10 ≤ + 3

Représentation en ±(?)2 ±(?)10


C2 sur 3 bits  n=4 : l’intervalle est - 8 ≤ (N)10 ≤ + 7
(000)C2 +(000)2 +0  n=5 : l’intervalle est - 16 ≤ (N)10 ≤ + 15
(001)C2 +(001)2 +1  n=8 : l’intervalle est - 128 ≤ (N)10 ≤ + 127
(010)C2 +(010)2 +2
(011)C2 +(011)2 +3
(100)C2 -(100)2 -4
(101)C2 -(011)2 -3
(110)C2 -(010)2 -2
 Les opérations arithmétiques en C2
Si on prend deux nombres entiers A et B sur n bits, On remarque que la soustraction peut être
ramenée à une addition.

A – B = (+A) + (-B)
Représenter +A en C2 Représenter -B en C2

Exemples :
Effectuer les opérations suivantes sur 5 bits (- 16 ≤ (N)10 ≤ + 15) en C2, vérifier le résultat en
décimal.

1ère opération

6 + 3 = ( ?)C2

6 + 3 = (+6) + (+3)
Sur 5 bits Lui même
+ (6)10  +(00110)2  (00110)C2

Sur 5 bits Lui même


+ (3)10  +(00011)2  (00011)C2

11
(0 0 1 1 0)C2 (+)
+ +
(0 0 0 1 1)C2 (+)

= (0 1 0 0 1)C2 = (+)

Vérification du résultat en décimal :

 (01001)C2  ±( ?)2  ±( ?)10


Lui même
(01001)C2 = +(01001)2 = + (9)10
2ème opération

15 - 1 = ( ?)C2

On a : 15 – 1 = (+15) + (-1)

Sur 5 bits Lui même

+ (15)10  +(01111)2  (01111)C2

Sur 5 bits
- (1)10  - (00001)2  (11111)C2

Inverser

1111
(0 1 1 1 1)C2 (+)
+ +
(1 1 1 1 1)C2 (-)

= 1 (0 1 1 1 0)C2 = (+)

Rejet

Vérification du résultat en décimal :

 (01110)C2  ±( ?)2  ±( ?)10


Lui même
(01110)C2 = +(01110)2 = + (14)10

A retenir :

On dit qu’il y’ a un rejet, si une opération en C2 sur n bits génère un n+1 bit
3ème opération

9 + 8 = ( ?)C2

On a : 9 + 8 = (+9) + (+8)

Sur 5 bits Lui même

+ (9)10  +(01001)2  (01001)C2

Sur 5 bits Lui même

+ (8)10  +(01000)2  (01000)C2

1
(+)
(0 1 0 0 1)C2
+
+  Il y a dépassement de capacité
(0 1 0 0 0)C2 (+)

= (1 0 0 0 1)C2 = ( -)

Vérification du résultat en décimal :

 (10001)C2  ±( ?)2  ±( ?)10

(10001)C2 = -(01111)2 = - (15)10 ≠ +(17)10

Inverser

Justification : dépassement de capacité car + (17) ∈ [- 16, +15]

A retenir :

On dit qu’il y a un dépassement de capacité (Overflow) si :

 (+) + (+)= (-)

 (-) + (-) = (+)


4ème opération

-7 - 13 = ( ?)C2

On a : -7 -13 = (-7) + (-13)

Sur 5 bits
- (7)10  - (00111)2  (11001)C2

Inverser

Sur 5 bits
- (13)10  - (01101)2  (10011)C2

Inverser

11
(1 1 0 0 1)C2 (-)
+ +
 Il y a dépassement de capacité
(1 0 0 1 1)C2 (-)

= 1 (0 1 1 0 0)C2 = (+)

Rejet

Vérification du résultat en décimal :

 (01100)C2  ±( ?)2  ±( ?)10

(01100)C2 = +(01100)2 = + (12)10 ≠ -(20)10

Justification : dépassement de capacité car - (20) ∈ [- 16, +15]

Conclusion :

Le dépassement de capacité indique que le résultat de l’addition est faux, car il n’est pas supporté
dans l’intervalle des représentations des nombres en C2 ; [- (2(n-1)) , + (2(n-1) -1)]
II.2. Le codage de l’information
Pour représenter l’information (donnée) sur machine, il faut la coder. Certains codes ont été
créés pour faciliter le codage /décodage de l’information afin de permettre son échange à un niveau
mondial.

a/ Le code BCD (Binary Coded Decimal) : décimal codé binaire


C’est une norme utilisée pour coder des nombres, ces derniers sont représentés en chiffres
décimaux et chacun de ces chiffres est codé sur 4 bits en base 2.

Chiffres Codage sur 4 bits


décimaux (Base 2)
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Exemple : codage BCD : (éclatements sur 4 bits)

(153)10  (?)BCD (153)

0001 0101 0011

Donc : (153)10 = (000101010011)BCD

Exemple : décodage BCD : (regroupements sur 4 bits)

(010101100010)BCD  (?)10 (0101 0110 0010)

5 6 2

Donc : (010101100010)BCD  (562)10


b/ Le code ASCII (American Standard Code for Information
Interchange) : code américain normalisé pour l’échange d’information
C’est une norme de codage de caractères mise au point dans les années 60. l’ASCII
(www.table-ascii.com) définissait au début que 128 caractères nécessaires pour écrire en langue
anglaise. Ces caractères numérotés en décimal de 0 à 127 et codés en binaire sur 8 bits de 00000000
à 01111111 (voir tableau 1).

Exemples : sur 8 bits

- Le caractère A est codé en (65)10 = (01000001)2 = (41)16


- Le caractère ? est codé en (63)10 = (00111111)2 = (3F)16

Tableau 1 : table ASCII


Exemple de codage en ASCII :

Il suffit de représenter chaque lettre par son code ascii associé. Dans l’exemple suivant, on désire
coder le mot : Alger

Alger

Ascii en binaire : 01000001 01101100 01100111 01100101 01110010

Ascii en Hexa : 41 6C 67 65 72

Exemple de décodage en ASCII :

Si le code est en binaire, il suffit de faire des regroupements de 8 bits et de représenter chaque code
par son caractère ASCII associé.

Code Ascii en Hexa : 55 53 54 48 42

Code Ascii en binaire : 01010101 01010011 01010100 01001000 01000010

Décodage du mot : U S T H B

Il existe maintenant le code ASCII étendu qui utilise la totalité des 8 bits (28 = 256
combinaisons) afin de représenter les caractères accentués. On trouve aussi le code UNICODE qui
utilise 2 octets = 16 bits (216 combinaisons) pour supporter plus de langues (arabe, chinois…).

c/ L’UNICODE
L’Unicode (http://unicode-table.com) est une norme de codage mise au point dans les années
90; il comporte plus de 100000 caractères de plusieurs langues, chaque caractère est codé sur 16
bits. Le code ASCII (table1) est inclus dans l’Unicode.

Exemples : sur 16 bits


- Le caractère A est codé en (0041)16 = (0000000001000001)2
- Le caractère ? est codé en (003F)16 = (0000000000111111)2
d/ Code Gray
Le code de Gray permet de coder les entiers de telle façon que le passage d’un nombre
entier N au nombre suivant (N+1) ne change qu’un seul bit à la fois. Parmi les domaines de son
application, le code Gray est utilisé dans certains systèmes de télécommunication pour la correction
d’erreur.

Table des Codes de Gray

Décimal Binaire Gray Décimal Binaire Gray Décimal Binaire Gray

0 0 0 20 10100 11110 40 101000 111100


1 1 1 21 10101 11111 41 101001 111101
2 10 11 22 10110 11101 42 101010 111111
3 11 10 23 10111 11100 43 101011 111110
4 100 110 24 11000 10100 44 101100 111010
5 101 111 25 11001 10101 45 101101 111011
6 110 101 26 11010 10111 46 101110 111001
7 111 100 27 11011 10110 47 101111 111000
8 1000 1100 28 11100 10010 48 110000 101000
9 1001 1101 29 11101 10011 49 110001 101001
10 1010 1111 30 11110 10001 50 110010 101011
11 1011 1110 31 11111 10000 51 110011 101010
12 1100 1010 32 100000 110000 52 110100 101110
13 1101 1011 33 100001 110001 53 110101 101111
14 1110 1001 34 100010 110011 54 110110 101101
15 1111 1000 35 100011 110010 55 110111 101100
16 10000 11000 36 100100 110110 56 111000 100100
17 10001 11001 37 100101 110111 57 111001 100101
18 10010 11011 38 100110 110101 58 111010 100111
19 10011 11010 39 100111 110100 59 111011 100110

Codage Binaire  Gray : (B)2 (G)gray Décodage Gray  Binaire : (G)gray (B)2
- Soit (B)2 = bn-1bn-2…b1b0 , sa représentation en - Soit (G)gray = gn-1gn-2…g1g0 , sa valeur binaire est
code de Gray est (G)gray = gn-1gn-2…g1g0 (B)2 = bn-1bn-2…b1b0
- pour déterminer les gi : -Pour déterminer les bi :
 gn-1 = bn-1  bn-1=gn-1
 gi = bi+1  bi tel que i=(n-2) à 0  bi=bi+1  gi tel que i=(n-2) à 0

Remarque : 00=0 , 11=0 , 01=1 , 10=1 Remarque : 00=0 , 11=0 , 01=1 , 10=1

Exemple : Exemple :
(10010)2 = (?)gray (11100)gray = (?)2

(1 0 0 1 0)2 (1 1 1 0 0)gray
10 00 01 10
11 01 10 10

(1 1 0 1 1 )gray (1 0 1 1 1 )2

Donc : (10010)2 = (11011)gray Donc : (11100)gray = (10111)2

Vous aimerez peut-être aussi