Vous êtes sur la page 1sur 56

GELE2442 Chapitre 2 :

Syst`emes de nombres et codes

Gabriel Cormier, Ph.D., ing.

Universit
e de Moncton

Hiver 2015

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 1 / 56


Contenu

1 Syst`eme positionnel

2 Conversions de base

3 Addition et soustraction binaire

4 Representation des nombres negatifs

5 Addition et soustraction en complement `a 2

6 Codes binaires

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 2 / 56


Syst`
eme positionnel

Syst`eme positionnel

Syst`eme de base utilise pour code des chiffres


Ex : syst`eme decimal
La position dun symbole determine son poids (ou importance, ou
valeur)
Ex : dans le chiffre decimal 23, le symbole 2 a un poids de 20
(2 10)

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 3 / 56


Syst`
eme positionnel Syst`
eme d
ecimal

Syst`eme decimal

Dix symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9
Chaque position dun chiffre represente une puissance de 10
Exemple :
1734 = (1 1000) + (7 100) + (3 10) + (4 1)
51.68 = (5 10) + (1 1) + (6 0.1) + (8 0.01)

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 4 / 56


Syst`
eme positionnel Syst`
eme d
ecimal

Syst`eme decimal

Sous le syst`eme decimal, un nombre D = d1 d0 .d1 d2 a la valeur

D = . . . d1 101 + d0 100 . + d1 101 + d2 102 + . . .

On appelle 10 la base ou la racine (en anglais radix).

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 5 / 56


Syst`
eme positionnel Syst`
eme d
ecimal

Syst`emes de nombres

Pour tous les syst`emes de nombre, la racine r 2 et le chiffre `a la position


i a un poids ri . La forme generale est :

dp1 dp2 d1 d0 . d1 d2 dn

o`
u on a p chiffres `a gauche du point et n chiffres `a droite. La valeur du
nombre est :
Xp
D= di ri
i=n

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 6 / 56


Syst`
eme positionnel Syst`
eme binaire

Syst`eme binaire

Le mieux connu apr`es le syst`eme decimal


La base de tous les syst`emes numeriques (ordinateurs,
microcontroleurs, etc)
Base r = 2
Deux symboles : 0 et 1
Aussi appeles des bits

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 7 / 56


Syst`
eme positionnel Syst`
eme binaire

Exemple

Quelle est la valeur decimale des chiffres binaires suivants : 100112 et


101.0012 ?
Indique la base

100112 = 1 24 + 0 23 + 0 22 + 1 21 + 1 20
= 1 16 + 0 8 + 0 4 + 1 2 + 1 1 = 1910

101.0012 = 1 4 + 0 2 + 1 1 + 0 0.5 + 0 0.25 + 0 0.125


= 5.12510

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 8 / 56


Syst`
eme positionnel Syst`
eme binaire

Syst`eme binaire

Indice `a droite indique la base


Chiffre le plus `a gauche est le chiffre le plus important :
MSB : most significant bit
Ex : pour le chiffre 100112 , sil y a erreur dans le MSB, la valeur du
chiffre est 3 au lieu de 19
Chiffre le plus `a droite est le chiffre le moins important :
LSB : least significant bit
Ex : pour le chiffre 100112 , sil y a erreur dans le LSB, la valeur du
chiffre est 18 au lieu de 19

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 9 / 56


Syst`
eme positionnel Syst`
eme binaire

Syst`eme binaire

Un groupe de 8 bit (symbole : b) est un byte (symbole : B)


byte = octet en francais
4B veut dire 4 bytes, ou 32 bits
kb = 210 bit (1024) et non 1000
MB = mega byte = 220 byte = 1 048 576 byte et non 1 000 000
GB = 230

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 10 / 56


Syst`
eme positionnel Syst`
eme binaire

Syst`eme binaire

Le nombre de bits dun syst`eme limite le nombre maximal dun chiffre


Un syst`eme `a 8 bits peut representer des chiffres de 0 `a 28 1 = 255
16 bits veut dire 0 `a 65535

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 11 / 56


Syst`
eme positionnel Syst`
eme octal

Syst`eme octal

Base r = 8
Huit symboles : 0, 1, 2, 3, 4, 5, 6 et 7
Exemple :
178 = 1 81 + 7 80 = 1510

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 12 / 56


Syst`
eme positionnel Syst`
eme hexad
ecimal

Syst`eme hexadecimal

Base r = 16
Seize symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F
Exemple :

B65F16 = 11 163 + 6 162 + 5 161 + 15 160 = 4668710

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 13 / 56


Conversions de base

Conversion de base

Quelques methodes existent


Certaines conversion plus faciles que dautres
Ex : Binaire `a hexadecimal : facile
Ex : Octal `a decimal : plus difficile

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 14 / 56


Conversions de base Conversions binaire-octal-hexad
ecimal

Conversion Binaire `a Octal

Dans la base octal, 8 = 23


On groupe alors les bits en groupes de 3
Chaque groupe de 3 bits est convertit en octal
Exemple :

1000110011102 = 100 011 001 110 = 43168


4 3 1 6

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 15 / 56


Conversions de base Conversions binaire-octal-hexad
ecimal

Conversion Binaire `a Hexadecimal

Dans la base hexadecimal, 16 = 24


On groupe alors les bits en groupes de 4
Chaque groupe de 4 bits est convertit en hexadecimal
Exemple :

1000110011102 = 1000 1100 1110 = 8CE16


8 C E

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 16 / 56


Conversions de base Conversions binaire-octal-hexad
ecimal

Conversion Octal ou Hexadecimal `a Binaire

Cest le processus inverse de binaire `a octal (hexadecimal)


En octal, chaque chiffre est ecrit par 3 bits
En hexadecimal, chaque chiffre est ecrit par 4 bits
Exemples :

13578 = 001 011 101 1112


9F.46C16 = 1001 1111. 0100 0110 11002

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 17 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Conversion de decimal `a une autre base

On fait de la division
On divise le chiffre decimal par la base `a laquelle on veut convertir
On divise jusqu`a ce que le chiffre `a diviser soit plus petit que la base
Pour convertir les fractions, on multiplie au lieu de diviser

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 18 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Exemple

Convertir 17910 en binaire.

179 2 = 89 reste 1 (LSB)


89 2 = 44 reste 1
44 2 = 22 reste 0
22 2 = 11 reste 0
11 2 = 5 reste 1
5 2 = 2 reste 1
2 2 = 1 reste 0
1 2 = 0 reste 1 (MSB)
17910 = 101100112

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 19 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Exemple

Convertir 46710 en octal.

467 8 = 58 reste 3 (LSB)


58 8 = 7 reste 2
7 8 = 0 reste 7 (MSB)
46710 = 7238

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 20 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Exemple

Convertir 0.687510 en binaire.

0.6875 2 = 1.3750 d1 = 1 (MSB)


0.3750 2 = 0.75 d2 = 0
0.75 2 = 1.5 d3 = 1
0.5 2 = 1 d4 = 1 (LSB)
0.687510 = 0.10112

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 21 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Exemple

Convertir 0.310 en binaire.

0.3 2 = 0.6 d1 = 0 (MSB)


0.6 2 = 1.2 d2 = 1
0.2 2 = 0.4 d3 = 0
0.4 2 = 0.8 d4 = 0
0.6 2 = 1.6 d5 = 1
0.6 2 = 1.2 d6 = 1 (LSB)
0.310 = 0.0100112

La sequence se rep`ete : erreur de conversion.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 22 / 56


Conversions de base Conversion de d
ecimal `
a une autre base

Exemple

Il faut decider du nombre de bits `a utiliser : precision de la conversion.

Precision Reponse Reconversion Erreur


4 bits 0.01002 0.25 0.05
5 bits 0.010012 0.28125 0.01875
6 bits 0.0100112 0.296875 0.003125

Mais, plus de bits = plus de calculs = plus lent

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 23 / 56


Addition et soustraction binaire

Addition binaire

X Y Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Cin = report dentree : surplus de laddition `a la position precedente


Cout = report de sortie : surplus ajoute `a laddition des bits de la position
suivante

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 24 / 56


Addition et soustraction binaire

Addition binaire

Debordement
1 1 1 1 1
X 1 0 1 1 1 1 1 0 190
Y + 1 0 0 0 1 1 0 1 + 141
0 1 0 0 1 0 1 1 S 331
1 0 1 1 1 1 0 0 Cout

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 25 / 56


Addition et soustraction binaire

Soustraction binaire

X Y Bin D Bout
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

Bin = emprunt dentree : valeur quil faut aller chercher `a la position plus
importante
Bout = emprunt de sortie

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 26 / 56


Addition et soustraction binaire

Exemple

0 10 1 1 10 10
X 1 1 1 0 0 1 0 1 229
Y 0 0 1 0 1 1 1 0 46
1 0 1 1 0 1 1 1 D 183

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 27 / 56


Repr
esentation des nombres n
egatifs

Representation des nombres negatifs

En decimal, on utilise lamplitude et un signe : +49, 53


Pas de signe en binaire
Quelques methodes possibles en binaire pour le negatif
MSB
Methodes `a complement

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 28 / 56


Repr
esentation des nombres n
egatifs Repr
esentation avec le MSB

Representation avec le MSB

Dans ce syst`eme, le MSB represente le signe


0 veut dire un chiffre positif
1 veut dire un chiffre negatif
Ex : 010101012 = +8510
Ex : 110101012 = 8510
On perd 1 bit pour representer lamplitude
Dans un syst`eme `a n bits, les valeurs possible sont de :

(2n1 1) `a (2n 1)

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 29 / 56


Repr
esentation des nombres n
egatifs Repr
esentation avec le MSB

Representation avec le MSB

Quelques desavantages
On perd un bit pour le signe
Beaucoup de decisions `a prendre lorsquon fait laddition (ou la
soustraction)
Si on a deux nombres de meme signe :
On additionne les amplitudes
Le resultat est de meme signe
Si on a deux nombres de signe different :
Il faut verifier le nombre avec la plus grande amplitude
Soustraire le plus petit du plus grand
Le resultat aura le signe du plus grand

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 30 / 56


Repr
esentation des nombres n
egatifs M
ethode de compl
ements

Methodes de complements

Crees pour simplifier loperation de soustraction


Deux types
Complement `a R
Complement `a R 1
De facon generale, le complement `a R peut etre decrit selon :

rn D = [(rn 1) D] + 1

u D = dn1 dn2 d1 d0 , et le MSB indique le signe.


o`

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 31 / 56


Repr
esentation des nombres n
egatifs M
ethode de compl
ements

Exemple

Quel est le complement `a 10 de 184910 ?

Dans ce cas-ci, la base est 10 (r = 10), on utilise 4 chiffres (n = 4), et le


chiffre est D = 1849. Le complement `a 10 est :

C = (104 1) 1849 + 1 = 8151


 

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 32 / 56


Repr
esentation des nombres n
egatifs M
ethode de compl
ements

Complement

Une autre methode de faire le calcul est de prendre le complement de


chaque chiffre, individuellement, puis additionner 1 au total. Le
complement de chaque chiffre (`a la position x) est (r 1) dx .

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 33 / 56


Repr
esentation des nombres n
egatifs M
ethode de compl
ements

Exemple

Quel est le complement `a 10 de 184910 ?

Dans ce cas-ci, la base est 10 (r = 10), et le complement par chiffre est


(10 1) dx .

9 9 9 9
1 8 4 9
8 1 5 0 + 1 = 8151

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 34 / 56


Repr
esentation des nombres n
egatifs Compl
ement `
a2

Complement `a 2

Tr`es utilise : syst`eme utilise dans les ordinateurs


Le MSB indique le signe
La plage de valeurs possible est de (2n1 ) `a +(2n1 1), pour un
nombre `a n bits.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 35 / 56


Repr
esentation des nombres n
egatifs Compl
ement `
a2

Exemple

Quel est le complement `a 2 de 000100012 ?

1710 = 00010001

11101110
+1
11101111 = 1710

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 36 / 56


Repr
esentation des nombres n
egatifs Compl
ement `
a1

Complement `a 1

Autre syst`eme de representation


Le MSB indique le signe (1 veut dire un nombre negatif, 0 pour un
nombre positif)
Deux representations pour le zero : 00000000 et 111111111
La plage de valeurs possibles est : (2n1 1) `a +(2n1 1), pour
un nombre `a n bits.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 37 / 56


Repr
esentation des nombres n
egatifs Compl
ement `
a1

Exemple

Quel est le complement `a 1 de 000100012 ?

1710 = 00010001

11101110 = 1710

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 38 / 56


Addition et soustraction en compl
ement `
a2

Addition et soustraction en complement `a 2

Pour soustraire, on additionne le complement


On neglige le report au-del`a du MSB

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 39 / 56


Addition et soustraction en compl
ement `
a2

Exemples

+3 0011 2 1110
+ +4 0100 + 6 1010
+7 0111 8 1 1000

+6 0110 +4 0100
+ 3 1101 + 7 1001
+3 1 0011 3 1101

En rouge : debordement. Le resultat depasse les valeurs minimales ou


maximales

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 40 / 56


Addition et soustraction en compl
ement `
a2

Debordement

Debordement : lorsque la somme dune addition depasse le nombre


maximal permis
Debordement si la somme > +(2n1 1), ou < (2n1 )
Deux signes differents : jamais de debordement
Deux memes signes : possibilite de debordement
Debordement si le resultat est de signe different du signe des nombres
additionnes

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 41 / 56


Addition et soustraction en compl
ement `
a2

Exemple

3 1101 +5 0101
+ 6 1010 + +6 0110
9 1 0 1 1 1 = +7 +11 1 1 0 1 1 = 5

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 42 / 56


Codes binaires

Codes binaires

Ensemble des r`egles ou conventions qui permettent de representer les


chiffres decimaux en en code binaire
Quelques possibilites
DCB : Decimal-Code-Binaire
Code Gray
Code Hamming
ASCII

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 43 / 56


Codes binaires D
ecimal cod
e binaire

Decimal code binaire

Decimal Code
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 44 / 56


Codes binaires D
ecimal cod
e binaire

Decimal code binaire

Pas la meme chose que le binaire


En binaire, 13 = 1101
En DCB, 13 = 00010011

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 45 / 56


Codes binaires Code Gray

Code Gray

Seul 1 bit change en chaque nombre successif (exemple : 3 bits)

Decimal Binaire Gray


0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 46 / 56


Codes binaires Code Hamming

Code Hamming

Permet de detecter et corriger des erreurs dans des sequences de bits


On calcule k bits de parite `a partir de n bits de donnees (k < n)
Les bits de parite sont places `a des positions qui sont des puissances
de 2
Les n bits de donnees sont places dans les positions restantes

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 47 / 56


Codes binaires Code Hamming

Exemple

Code Hamming pour un mot de 8 bits

Position 1 2 3 4 5 6 7 8 9 10 11 12
Valeur P1 P2 d1 P4 d2 d3 d4 P8 d5 d6 d7 d8

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 48 / 56


Codes binaires Code Hamming

Code Hamming

Le j e bit de parite (o`


u j = 1, 2, 3, ...k) est calcule en faisant des operations
xor (ou exclusifs) avec les bits de donnees dont les positions, lorsque
presentees en binaire, sont des 1

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 49 / 56


Codes binaires Code Hamming

Code Hamming

Colonne
Position 4321
P1 0001
P2 0010
0011
P4 0100
0101
0110
0111
P8 1000
1001
1010
1011
1100

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 50 / 56


Codes binaires Code Hamming

Code Hamming

Le calcul des bits de parite est comme suit :

P1 = XOR(3, 5, 7, 9, 11) = XOR(d1 , d2 , d4 , d5 , d7 )


P2 = XOR(3, 6, 7, 10, 11) = XOR(d1 , d3 , d4 , d6 , d7 )
P4 = XOR(5, 6, 7, 12) = XOR(d2 , d3 , d4 , d8 )
P8 = XOR(9, 10, 11, 12) = XOR(d5 , d6 , d7 , d8 )

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 51 / 56


Codes binaires Code Hamming

Code Hamming

Pour detecter des erreurs on fait des xor en incluant les bits de parite :

C1 = XOR(1, 3, 5, 7, 9, 11)
C2 = XOR(2, 3, 6, 7, 10, 11)
C4 = XOR(4, 5, 6, 7, 12)
C8 = XOR(8, 9, 10, 11, 12)

On forme ensuite un nombre C = C1 C2 C4 C8 .


Si C = 0, il ny a pas derreur.
Si C = X, il y a erreur `a la position X : on doit prendre le
complement du bit `a la position X pour corriger lerreur. Exemple :
pour un mot `a 8 bits, si on trouve C = 0101, le bit `a la position 5
contient une erreur.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 52 / 56


Codes binaires Code Hamming

Exemple

Calculer le code de Hamming pour le mot suivant : 11000100.

On calcule les bits de parite :

P1 = XOR(d1 , d2 , d4 , d5 , d7 ) = 1 1 0 0 0 = 0
P2 = XOR(d1 , d3 , d4 , d6 , d7 ) = 1 0 0 1 0 = 0
P4 = XOR(d2 , d3 , d4 , d8 ) = 1 0 0 0 = 1
P8 = XOR(d5 , d6 , d7 , d8 ) = 0 1 0 0 = 1

On transmet le message : 001110010100.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 53 / 56


Codes binaires Code Hamming

Code Hamming

On peut augmenter lefficacite de la detection derreur en ajoutant un bit


` la
de parite `a la fin de la sequence. Ceci permet de detecter 2 erreurs. A
reception, on calcule C, comme le code de Hamming normal, et on verifie
la parite P .
Si C = 0 et P = 0, il ny a pas derreur.
Si C 6= 0 et P = 1, il y a une erreur quon peut corriger.
Si C 6= 0 et P = 0, il y a deux erreurs (mais on ne peut pas les
corriger).
Si C = 0 et P = 1, alors P est une erreur.

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 54 / 56


Codes binaires Code ASCII

Code ASCII

Syst`eme pour representer des lettres et caract`eres speciaux


ASCII : American Standard Code for Information Interchange
Code tr`es utilise
Code `a 7 bits : 128 caract`eres (ne permet pas les accents !)
De plus en plus remplace par le Unicode (UTF-8)

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 55 / 56


Codes binaires Code ASCII

b7 b6 b5
b4 b3 b2 b1 000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 @ P p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , < L \ l |
1101 CR GS = M ] m }
1110 SO RS . > N n
1111 SI US / ? O o DEL

Gabriel Cormier (UdeM) GELE2442 Chapitre 2 Hiver 2015 56 / 56