Vous êtes sur la page 1sur 13

4) Système de Numération : (Binaire, Octal et Hexadécimale)

a) Le bit : c’est la plus petite unité d’information (unité de valeur) d’un composant
électronique. Il se présente sous forme de deux états :
- Circuit ouvert (le courant ne passe pas ou (0))
- Circuit fermé (le courant passe ou (1))
C’est à partir de là, qu’on a imaginé un système binaire qui n’utilise que deux symboles (0 et 1).
Chaque groupe de 8 bits s’appelle : un octet (en français) ou un Byte (en anglais)
 Le Binaire :
- C’est le système qui n’a que 2 éléments ; un alphabet de 2 chiffres : (0 et 1)
 Conversion d’un nombre décimal en binaire :

25 2
1 12 2

0 6 2 soit : (11001)2

0 3 2

1 1

(on arrête la division car 1 < 2)

On lit et écrit à partir du dernier quotient (1) et les restes en remontant)


Ce qui s’écrit : (11001)2 = (25)10
Exemples de calculs (109+19 = (128)10) et (22x5 = (110)10) :
 Addition et multiplication :
1101101 = (109)10 10110 = (22)10
+ 10011 = (19)10 x 101 = ( 5)10
___________ ____________
(10000000)2 = (128)10 10110
00000
10110
_________
(1101110)2 = (110)10
 Conversion en binaire (Méthode des puissances)
- Tout nombre entier positif (n) et non nul s’écrit sous la forme :
n = Ckbk + Ck – 1bk – 1 +... + C1b1 + C0b0
avec : b = base, Ck = quotient entier de rang k.
Si : n < b, alors k = 0 et n = C0b0 = C0
Sinon : n = Ck bk + r1
r1 = Ck –1 bk – 1 + ... + C1 b1 + Co
r2 = Ck – 2bk-2 + ... + C1 b1 + Co
rk = 1

Exemple : Représentation de 31 en base 2


31 16 =24 1 (31)10 = (11111)2

15 8=23 1

7 4=22 1

3 21 1

1 20 1

On effectue les divisions jusqu’à obtenir un reste nul (0).


La lecture des bits se fait de haut en bas.

 Le Système Octal : (base 8)

C’est un alphabet de 8 chiffres : ( 0, 1, 2, 3, 4, 5, 6, 7 )


Il permet de coder 3 bits par un seul symbole
8 = 23  0  000 Chaque chiffre est représenté sur 3 bits
1  001
2  010
3  011
4  100
5  101
6  110
7  111
(261)8  2 6 1
010 110 001
(010110001)2 = (177)10

Conversion d’un nombre décimal en Octal

 Sot N le nombre d’étudiants d’une classe représenté en base décimale par : N =


177(10)
 Représentation en Octale?

177 8

1 22 8

6 2

(177)10 = (261)8

On lit de bas en haut


 Le Système Hexadécimal (base 16)
C’est un alphabet de 16 caractères :
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,)
A = 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15
16 = 24 Le système binaire ne convient pas pour noter les grands nombres.
(A71E)16 = ?  10*163 + 7*162 + 1*161 + 14*160

 Conversion d’un nombre décimal en Hexadécimal


 Soit N le nombre d’étudiants d’une classe représenté en base décimale
par : N = 323(10)
 Représentation en Hexadécimale

323 16

3 20 16

4 1

(323)10  (143)16

(323)10 = (143)16 pour mettre en binaire, on remplace chaque chiffre du nombre en


hexadécimal par son équivalent binaire.

(143)16 = 1 4 3

0001 0100 0011

Soit :(143)16 = (101000011)2

 Changement de base : de la base 10 vers une base b

 La règle à suivre est les divisions successives :


 On divise le nombre par la base b
 Puis le quotient par la base b
 Ainsi de suite jusqu’à l’obtention d’un quotient nul
 La suite des restes correspond aux symboles de la base visée.
 On obtient en premier le chiffre de poids faible et en dernier le chiffre de poids fort

 Changement de base : de la base binaire vers une base b

Première solution :
 Convertir le nombre en base binaire vers la base décimale puis convertir ce
nombre en base 10 vers la base b.
 Exemple
Soit N un nombre représenté en binaire par :
N = 1010011101(2)
Représentation Décimale ?
N=1.29+0.28+1.27+0.26+0.25+1.24+1.23+1.22+0.21+1.20 =512 + 0 + 128 + 0 + 0 +
16 + 8 + 4 + 0 + 1 =669(10) 1010011101(2)=669(10
Deuxième solution :

 Binaire vers décimale : par définition ∑n-1i=0 aibi


 Binaire vers octale : regroupement des bits en des sous ensembles de trois bits puis
remplacer chaque groupe par le symbole correspondant dans la base 8.

Exemple :
Soit N un nombre représenté en base binaire par :
N = 1010011101(2)
Représentation Octale ?
N = 001 010 011 101(2)
= 1 2 3 5 (8) 1010011101(2)= 1235(8)
 Binaire vers Hexadécimale : regroupement des bits en des sous ensembles de
quatre bits puis remplacer chaque groupe par le symbole correspondant dans la
base 16.

Exemple :
Soit N un nombre représenté en base binaire par :
N = 1010011101(2)
Représentation Hexadécimale?
N = 0010 1001 1101(2)
= 2 9 D (16)
1010011101(2)= 29D(16)

 Codage des nombres


 Codage des entiers positifs (binaire pur)
 Codage des entiers naturels
 Utilisation du code binaire pur :
o L’entier naturel (positif ou nul) est représenté en base 2,
o Les bits sont rangés selon leur poids, on complète à gauche par des 0.
o Exemple : sur un octet, 10(10) se code en binaire pur par :
0 0 0 0 1 0 1 0(2)

 Etendu du codage binaire pur :


o Codage sur n bits : représentation des nombres de 0 à 2n -1
o sur 1 octet (8 bits): codage des nombres de 0 à 28- 1 = 255
o sur 2 octets (16 bits): codage des nombres de 0 à 216 - 1 = 65535
o sur 4 octets (32 bits) : codage des nombres de 0 à 232 - 1
 Arithmétique en base 2
Les opérations sur les entiers s’appuient sur des tables d’addition et de multiplication :

Addition binaire sur 8 Addition binaire (8 bits) avec (débordement ou


bits overflow)
10010110 10010110
+01010101 +01110101
------------------- --------------------
11101011 100001011


overflow

Multiplication binaire Sur 4 bits le résultat est faux


1 0 1 1 (4 bits) Sur 7 bits le résultat est juste
* 1 0 1 0 (4 bits) Sur 8 bits on complète à gauche par un 0
-------------------
0000
1011
0000
1011
------------------
01101110

 Codage des entiers relatifs (complément à 2)


o Il existe au moins trois façons pour coder :
 code binaire signé (par signe et valeur absolue)
 code complément à 1
 code complément à 2 (Utilisé sur ordinateur)
o Binaire signé
o Le bit le plus significatif est utilisé pour représenter le signe du nombre :
- si le bit le plus fort = 1 alors nombre négatif
- si le bit le plus fort = 0 alors nombre positif
o Les autres bits codent la valeur absolue du nombre
o Exemple : Sur 8 bits, codage des nombres -24 et -128 en (bs)
- -24 est codé en binaire signé par : 1 0 0 1 1 0 0 0(bs)
- -128 hors limite → nécessite 9 bits au minimum
o Etendu de codage :
- Avec n bits, on code tous les nombres entre :
-(2n-1-1) et (2n-1-1)
- Avec 4 bits : -7 et +7
o Limitations du binaire signé:
- Deux représentations du zéro : + 0 et – 0
- Sur 4 bits : +0 = 0000(bs), -0 = 1000(bs)
- Multiplication et l’addition sont moins évidentes
Exercices
o Coder 100 et -100 en binaire signé sur 8 bits
100(10) = (01100100)(bs)
-100(10) = (11100100)(bs)
o Décoder en décimal (11000111)(bs) et (00001111)(bs)
(11000111)(bs) = - 71(10)
(00001111)(bs) = 15(10)
 code complément à 1
Le complément à 1 d'un nombre binaire est la valeur obtenue en inversant tous les bits de
ce nombre (en permutant les 0 par des 1 et inversement). Le complément à un d'un
nombre se comporte alors comme le négatif du nombre original dans certaines
opérations arithmétiques.
─ |-24|en binaire pur → 0 0 0 1 1 0 0 0(2) puis
─ on inverse les bits → 1 1 1 0 0 1 1 1(cà1)
 code complément à 2
 Aussi appelé Complément Vrai (CV) :
o les nombres positifs sont codés de la même manière qu’en binaire pure
o un nombre négatif est codé en ajoutant la valeur 1 à son complément à
1

 Exemple : -24 en complément à 2 sur 8 bits


o 24 est codé par 0 0 0 1 1 0 0 0(2)
o -24 → 1 1 1 0 0 1 1 1(cà1)
o donc -24 est codé par 1 1 1 0 1 0 0 0(cà2)
 Etendu de codage :
o Avec n bits, on peut coder de -(2n-1) à (2n-1-1)
o Sur 1 octet (8 bits), codage des nombres de -128 à 127
─ +0 = 00000000 -0=00000000
─ +1 = 00000001 -1=11111111
… …
─ +127=01111111 -128=10000000
 Codage des nombres réels
 Les formats de représentations des nombres réels sont :
 Format virgule fixe
o utilisé par les premières machines
o possède une partie ‘entière’ et une partie ‘décimale’ séparés par une virgule. La
position de la virgule est fixe d’où le nom.
o Exemple : 54,25(10) ; 10,001(2) ; A1,F0B(16)
 Format virgule flottante (utilisé actuellement sur machine)
o défini par : ± m . be
o un signe (s) : + ou –
o une mantisse m (en virgule fixe)
o un exposant e (un entier relative)
o une base b (2,8,10,16,…)
o Exemple : 0,5425 . 102(10) ; 10,1 . 2-1(2) ; A0,B4.16-2(16)
1. Codage en Virgule Fixe
 Etant donné une base b, un nombre x est représenté en format virgule fixe, par :
o x = an-1an-2…a1 a0 ,a-1a-2…a-p (b)
o an-1 est le chiffre de poids fort (MSB)
o a-p est le chiffre de poids faible (LSB)
o n est le nombre de chiffre avant la virgule
o p est le nombre de chiffre après la virgule
o La valeur de x en base 10 est : x =∑-pn-1aibi (10)
o Exemple : 101,01(2)=1.22+0.21+1.20+0.2-1+1.2-2 = 5,25(10)
Changement de base 10→2

 Le passage de la base 10 à la base 2 est défini par :

o Partie entière est codée sur p bits (division successive par 2)


o Partie décimale est codée sur q bits en multipliant par 2 successivement jusqu’à ce
que la partie décimale soit nulle ou le nombre de bits q est atteint.
o Exemple : 4,25(10) = ? (2) format virgule fixe
o 4(10) = 100(2)
o 0,25 x 2= 0,5 → 0
o 0,5 x 2 = 1,0 → 1
o donc 4,25(10) = 100,01(2)

Exercice : Coder 7,875(10) et 5,3(10) avec p=8 et q=8

2 Codage en Virgule Flottante


x=±M.2E
où M est la mantisse (virgule fixe) et E l’exposant (signé).
Le codage en base 2, format virgule flottante, revient à coder le signe, la mantisse
et l’exposant.
Exemple : Codage en base 2, format virgule flottante, de (3,25)
3,25(10) = 11,01(2) ( en virgule fixe)
= 1,101 . 21(2) (en virgule flottante)
= 110,1 . 2-1(2)
Pb : différentes manières de représenter E et M

Un nombre réel dans une base B s’écrit : (- 1)S *0, M* BE la forme dénormalisée

o Normalisation
X = ± 1,M . 2Eb

Un nombre réel dans une base B s’écrit : (- 1)S *1, M* BE la forme normalisée

•Le signe (s) est codé sur 1 bit ayant le poids fort :
o le signe – : s=1
o Le signe + : s= 0
•Exposant biaisé (Eb)
o placé avant la mantisse pour simplifier la comparaison
o Codé sur p bits et biaisé pour être positif (ajout de 2p-1-1)
•Mantisse normalisé(M)
o Normalisé : virgule est placé après le bit à 1 ayant le poids fort
o M est codé sur q bits
o Exemple : 11,01 → 1,101 21 donc M =101

S Eb M
1 bit p bits q bits

o Standard IEEE 754 (1985)


Simple précision sur 32 bits : 1 bit pour le signe de la mantisse, 8 bits pour l’exposant, 23
bits pour la mantisse

S E M
1 bit 8 bits 23 bits

Double précision sur 64 bits : 1 bit de signe de la mantisse 11 bits pour l’exposant 52 bits
pour la mantisse

S E M
1 bit 11 bits 52 bits

o Conversion décimale - IEEE754 (Codage d’un réel)


35,5(10) = ?(IEEE 754 simple précision)
Nombre positif, donc s = 0
35,5(10) = 100011,1(2) (virgule fixe)
= 1,000111 . 25(2) (virgule flottante)
Exposant = Eb-127 = 5, donc Eb = 132
1,M = 1,000111 donc M = 00011100...

0 10000100 00011100000000000000000 (IEEE 754 SP)


S Eb M
Conversion IEEE754 - Décimale (Evaluation d’un réel)

5) 0 10000001 11100000000000000000000 (IEEE 754 SP)


S Eb M

S = 0, donc nombre positif


Eb = 129, donc exposant = Eb-127 = 2
1,M = 1,111
+ 1,111 . 22 (2) = 111,1(2) = 7,5(10)

i) Codage des caractères : code ASCII

Parmi les codages les plus connus et utilisés, le codage ASCII (American Standard Code for
Information Interchange) étendu est le plus courant (version ANSI sur Windows) l’appellation
Européenne est : ISO (International standard organisation).

 Caractères : Alphabétique (A-Z , a-z), numérique (0 ,…, 9), ponctuation, spéciaux (&, $,
%,…) …etc.
 Codage revient à créer une Table de correspondance entre les caractères et des nombres
 Code (ou Table) ASCII (American Standard Code for Information Interchange)
o 7 bits pour représenter 128 caractères ( 0 à 127) (au debut)
o 48 à 57 : chiffres dans l’ordre (0,1,…,9)
o 65 à 90 : les alphabets majuscules (A,…,Z)
o 97 à 122 : les alphabets minuscule (a,…z)
 Table ASCII Etendu
o 8 bits pour représenter 256 caractères ( 0 à 255)
o Code les caractères accentués : à, è,…etc.
o Compatible avec ASCII
 Code Unicode (mis au point en 1991)
o 16 bits pour représenter 65 536 caractères ( 0 à 65 535)
o Compatible avec ASCII
o Code la plupart des alphabets : Arabe, Chinois, ….
o On en a défini environ 50 000 caractères pour l’instant

Tout caractère (x) a un code correspondant à un nombre unique appelé Code ASCII noté
CA(x).

Exemple : CA(B)=(66)10 , CA(B)= (42)16

j) Contrôle de parité

C’est un système de contrôle, qui est appelé, lors des transmissions des caractères.
Le 8ème bit est utilisé comme bit de parité : ce bit vaut (0 ou 1) de telle sorte que la somme
des bits à (1) soit toujours paire.
Si la somme des bits à (1) d’un caractère n’est pas un nombre pair, cela veut dire qu’il y a eu
une mauvaise transmission et on reprend la transmission de ce caractère.

k) Décimal code binaire (DCB)


Le décimal codé binaire (DCB) (binary coded decimal ou BCD en anglais), est un système de
numération utilisé en électronique et en informatique pour coder des nombres en se rapprochant de
la représentation humaine usuelle, en base 10. Dans ce format, les nombres sont représentés par les
chiffres décimaux les composant, et chacun de ces chiffres est codé sur quatre bits :

Chiffre Bits
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Ainsi, pour coder un nombre tel que 127, il suffit de coder chacun des chiffres 1, 2 et 7 séparément,
et l'on obtient la valeur 0001 0010 0111. De même pour le nombre 420, chacun des chiffres 4, 2 et 0
sont codés en binaire, ce qui donne 0100 0010 0000
Étant donné que quatre bits peuvent en théorie représenter 16 valeurs distinctes et que l'on se
restreint à dix valeurs possibles, on note une augmentation du nombre de bits requis pour
représenter un nombre lors de l'utilisation du format DCB. Ainsi par exemple, pour
représenter la valeur 12 (1100 en binaire naturel, 0001 0010 en DCB), il faudra utiliser 4 bits
de plus au format DCB qu'en binaire naturel. Plus généralement 8 bits permettent de coder
une valeur comprise entre 0 (0000 0000) et 99 (1001 1001) en DCB, là où l'utilisation d'un
code binaire naturel permettrait de représenter des valeurs allant jusqu'à 255 (1111 1111).

 Formats de stockage des valeurs DCB

Dans la plupart des ordinateurs, la taille minimale d'une donnée est d'un octet, soit 8 bits.
Deux méthodes communes permettent d'enregistrer les chiffres DCB de 4 bits dans un tel
octet :

1. ignorer les quatre bits supplémentaires de chaque octet en leur attribuant une valeur
fixe (0 ou 1 comme pour EBCDIC) - format étendu.
2. enregistrer deux valeurs DCB par octet, ce qui est appelé le « packed » DCB (qui peut
utiliser un signe : 1100 (C en hexa) pour + et 1101(D en hexa) pour −) - format
compacté.
Selon la méthode, le nombre 127 sera représenté par 11110001, 11110010, 11110111 en EBCDIC ou
par 0001 0010 0111 1100 en « packed » BCD.
Dans le cas d'un codage compacté, les 4 bits de poids faible de cet octet sont utilisés pour
représenter le signe (on perd donc la représentation d'un chiffre).

 Les Opérations en DCB


 Résultat inférieur ou égal à 9 :

- Ajout de 2 entiers naturels : 5 + 3


 0101 + 0011 = 1000 = (8)10 = (00001000)DCB
 Résultat supérieur ou égal à 10 :

- Ajout de 2 entiers : 7 + 6
7 + 6 = 0111 + 0110 = 1101
- En DCB, cette représentation n’a pas de signification sur 4 bits, on peut représenter 16
états ;
soit : 24 = 16 ; 6 de ces états n’ont pas de signification en DCB
- On ajoute (6) en binaire au résultat précédent soit :
1101
+0110
10011 ainsi : 7+6 => (00010011)DCB
- Ce qui s’écrit sur un octet : 0001 0011= 13
1 3

Exercice : Calculer en DCB : 756 + 476


756 => 0111 0101 0110
+476 => 0100 0111 0110
1232 1011 1100 1100 <= Tous ces binaires pris 4 par 4 n’ont pas de
signification en DCB
0110 0110 0110 on ajoute donc + 6
0001 0010 0011 0010
1 2 3 2

 Codification DCB

On codifie les relatifs à chaque chiffre décimal du nombre à coder.


En DCB la configuration est la suivante :
0 = 0000 ; 1 = 0001 ; 2 = 0010 ;….; 9 = 1001 ; chaque chiffre est codé sur 4 bits
0000 0001 1001 1000 1001 signe + = C ; - = D

1989

- Pour obtenir un octet (8 bits) on ajoute (0000) à gauche


- Le signe (+) est codé par (1100)2 = (C)16
- Le signe (-) est codé par (1101)2 = (D)16
- Les 4 bits du signe sont rangés à droite de la suite des chiffres et codés en binaires.
- On complète à gauche par 4 bits de (0) pour obtenir un multiple d’octets.
Exemples : - 133 133 D

+ 89 089 C

Pour obtenir un multiple de 8 bits

Exemple : - 12769000 ; (9 x 4 bits) + 4 bits => 5 octets


1 + 8 = 9 : il y a 8 chiffres et chaque chiffre est codé sur 4 bits, le signe est aussi codé sur 4
bits. On a alors 9*4 bits qui n’est pas un multiple de 8(8 bits =un octet). Il faut donc ajouter 4
bits de zéro (0) pour obtenir un multiple d’octet.

l) Code Gray
Le code Gray, également appelé binaire réfléchi, est un type de code binaire permettant de ne
modifier qu'un seul bit à la fois quand un nombre est augmenté d'une unité.
Utilité
Le code Gray est surtout utilisé pour des capteurs de positions, par exemple sur des règles
optiques. En effet, si on utilise le code binaire standard, lors du passage de la position un (01)
à deux (10), permutation simultanée de 2 bits, il y a un risque de passage transitoire par trois
(11) ou zéro (00), c’est ce que le code Gray veut éviter. Lors du passage de la valeur "01" à la
valeur "10" en binaire naturel, il est possible d'observer un état transitoire "00" si le bit de
droite commute en premier dans (01) ou "11" dans (10) dans le cas où le bit de gauche
commute en premier.
Le code Gray sert également dans les tables de Karnaugh utilisées lors de la conception de
circuits logiques.
Méthode de codage

Codage décimal Codage binaire naturel Codage Gray (ou binaire réfléchi)
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100

Une autre méthode de calcul permettant de passer d'un nombre de code Gray au suivant, et
qui présente l'avantage de ne pas connaître nécessairement l'ensemble des nombres
précédents.

Elle se présente comme suite :


 si le nombre de 1 est pair, il faut inverser le dernier chiffre.
 si le nombre de 1 est impair, il faut inverser le chiffre situé à gauche du 1 le plus à
droite.

Et enfin, la méthode la plus simple consiste à calculer avec le OU exclusif (symbolisé ici par
le caractère : ^) entre le binaire de départ et ce même binaire décalé d'un rang à droite.

Exemples : On veut représenter 7, 10, 15 en code Gray sur 4 bits.


a) 7 s'écrit : 0111 en base 2, sur 4 bits ; soit : A = 0111 = A3A2A1A0
Si on décale A : 0111 d’un rang à droite on a : B = 0011= B3B2B1B0, A/B + /AB = 0100
0111
^ 0011
------
0100
7 en décimal est représenté par 0100 en code Gray.
b) 10 s'écrit : 1010 en base 2. En décalant d’un rang à droite on a : 0101
1010
^ 0101
------
1111
10 en décimal est représenté par 1111 en code Gray.
c) 15 s'écrit : 1111 en base 2.
1111
^ 0111
------
1000
15 en décimal est représenté par 1000 en code Gray.
1111
+ 1111
---------
1000 1 à rejeter

Fonction (OU exclusif)

La fonction OU exclusif, souvent appelée XOR ou encore ( ⊽ ) en algèbre relationnelle, est


un opérateur logique de l'algèbre de Boole. Elle a deux opérandes, qui peuvent avoir chacun
la valeur VRAI ou FAUX, il associe un résultat qui a lui-même la valeur VRAI seulement si
les deux opérandes ont des valeurs distinctes. Cet opérateur est très utilisé en électronique, en
informatique, et aussi en cryptographie du fait de ses propriétés intéressantes. Son symbole est
traditionnellement un signe "PLUS" dans un cercle : «  ».

Vous aimerez peut-être aussi