Partie1 EN
Partie1 EN
Partie1 EN
NUMÉRIQUE
Cours
Prof. A.EL-AMIRI
Plan du cours Base binaire
01
Systèmes combinatoires
03
Systèmes séquentiels
04
INTRODUCTION
La création de la numération est un des faits
les plus marquants de l'histoire de
l'humanité. Si la plupart des civilisations ont
adopté le système décimal, c'est qu'il a
toujours été naturel de compter sur ses
doigts. L'utilisation des phalanges et des
articulations permit même d'améliorer ce
simple procédé connu de tous.
INTRODUCTION
Système de numération
Le rang
2 8 6 5
Position d’un chiffre dans un nombre, le
rang se compte en partant de la droite, à Rang 4 3 2 1 X multiplication
partir du rang 1.
Poids 1000 100 10 1
Le poids
A chaque rang est associé un poids, c’est-à-dire
VALEUR = (2 x 1000) + (8 x 100) + (6 x 10) + (5 x 1)
le coefficient par lequel il faudra multiplier le
2000 + 800 + 60 + 5 = 2865
chiffre pour obtenir sa valeur réelle.
INTRODUCTION
Rang et Poids
0 2 8 6 5
1 POIDS = BASE (RANG –1)
Rang POIDS = 10 (1 –1)= 100=1
4 3 2 1
0
Pour le système décimal Base = 10 Poids 1000 100 10 1
2
(2 –1)= 101=10
103 102 101 100 POIDS = 10
0
3
POIDS = 10 (RANG –1)
VALEUR = (2 x 103) + (8 x 102) + (6 x 101) + (5 x 100)
= 2865
BASE BINAIRE
1 1 1 0 0 1 1 0
RANG 8 7 6 5 4 3 2 1
POIDS 27 26 25 24 23 22 21 20
POIDS = 2 (6 –1)= 25=32
Première méthode : les divisions successives Deuxième méthode : les soustractions successives
Poids 128 64 32 16 8 4 2 1
Reste 102 38 6 6 6 2 0 0
Exemple:
(1011)2+ (0110)2
+ 0 1
Soit (11)10 + (6)10 = (17)10
0 0 1
1 1 1 Retenues intermédiaires
1 1 0* 1 0 1 1
+
0 1 1 0
* 1+1=10 ---------------------
Je pose 0 et je retiens 1 1 0 0 0 1
(17)10
Les opérations binaires
La soustraction
Exemple:
(1011)2 - (0110)2
- 0 1
Soit (11)10 - (6)10 = (5)10
0 0 1*
1 1 0 1 0 1 1
-
0 1 1 0
*Je pose 1 et je retiens 1 1 Retenues intermédiaires
---------------------
0 1 0 1
(5)10
Les opérations binaires
La multiplication
Exemple:
(1011)2 x (110)2
0 1 Soit (11)10 x (6)10 = (66)10
x
1 0 1 1
0 0 0 x 1 1 0
---------------------
1 0 1 Retenues intermédiaires 1 1 1 1
0 0 0 0
1 0 1 1 .
1 0 1 1 . .
--------------------------
1 0 0 0 0 1 0
(66)10
Les opérations binaires
La division
Exemple: 1 0 1 1 0 0 1 0 0
-
1 0 0
(101100)2 (100)2 --------- 1 0 1 1 (11)10
1 1
Soit (44)10 (4)10 = (11)10 1 1 0 Sens de lecture
-
1 0 0
---------
-1 0 0
1 0 0
---------
0
Le système octal et hexadécimal
Le langage binaire a
l’avantage d’être
compréhensible par la
machine mais il est Par conséquent,
difficilement «assimilable» on utilise d’autres
par l’homme dès lors qu‘il systèmes de notation
est questions de grandes
séries binaires.
Alphabet: 0 , 1, 2 , 3 , 4 , 5 , 6 , 7
Mots: 125,57
Syntaxe: code de position
Nous sommes en base 8
POIDS = 8(RANG –1)
Notation des nombres
n8 ex: (2542)8 pour un nombre en base 8
Le système octal
Base 8 vers base 10
n 8n
Exemple: (1207)8 (?)10 0 1
1 8
1 2 0 7 2 64
RANG 4 3 2 1 3 512
4 4096
POIDS 83 82 81 80
5 32 768
POIDS = 8 (4 –1)= 83 = 512 6 262 144
7 2 097 152
VALEUR = (1 x 83) + (2 x 82) + (0 x 81) + (7 x 80)
= 512 + 128 + 0 + 7 = (647)10
Le système octal
Base 10 vers base 8 Base 2 vers base 8
Méthode des divisions successives Un nombre octal est constitué de chiffres de 0 à 7 qui
constituent le regroupement de 3 chiffres binaires (car
Même principe que pour le système binaire,
23= 8).
SAUF que l’on divise par 8.
Le regroupement se fait en commençant par la droite.
Exemple : (647)10 (?)8
Exemple : (1010000111)2 (?)8
1 0 1 0 0 0 0 1 1 1
Rang 3 2 1 3 2 1 3 2 1 3 2 1
Poids 22 21 20 22 21 20 22 21 20 22 21 20
Valeur 0+0+1 0+2+0 0+0+0 4+2+1
( 1 2 0 7 )8
Réponse : (1207)8
Le système octal
Base 8 vers base 2
Résultat ( 1 0 1 0 0 0 0 1 1 1 )2
Les opérations en octal
Addition Soustraction
1 1
2 5 7 2
2 5 7 2 -
+ 1 6 1 0
3 1 0 ---------------------
--------------------- 1 7 6 2
3 1 0 2
(5 + 8) – 6 = 7
Le système hexadécimal
Définition du langage
Alphabet: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Mots: 2F5,57D
Syntaxe: code de position
Nous sommes en base 16
POIDS = 16(RANG –1)
Notation des nombres
n16 ex: (2AF2)16 pour un nombre en base 16
Le système hexadécimal
Base 16 vers base 10
n 16n
Exemple: (1A8F)16 (?)10 0 1
1 16
1 A 8 F 2 256
RANG 4 3 2 1 3 4096
4 65 536
POIDS 163 162 161 160
5 1 048 576
POIDS = 16 (3 –1)= 162 = 256 6 16 777 216
Détails
1 1 0 1 1 0 1 0 1 1 1 0 0
437 x 16 = 6992
7004 –6992 = 12 C Rang 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1
27 x 16 = 432 Poids 24 22 21 20 24 22 21 20 24 22 21 20 24 22 21 20
437 – 432 = 5
Valeur 0 + 0+0+1 8 + 0+2+1 0 + 4+0+1 8 + 4+0+0
27 –16 = 11 B
( 1 B 5 C ) 16
Réponse : (1B5C)16
Le système hexadécimal Base 16 Base 2
Base 16 vers base 2 0 0
1 1
2 10
Il suffit de savoir compter jusqu’à 15 en binaire !
3 11
Exemple: (1B5C)16 (?)2 4 100
5 101
1 B 5 C 6 110
7 111
8 1000
9 1001
0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 A 1010
B 1011
C 1100
Résultat ( 1 1 0 1 1 0 1 0 1 1 1 0 0 )2
D 1101
Bit de poids le plus faible E 1110
LSB (Less significant Bit) F 1111
Le système hexadécimal
Base 16 vers base8
1
2 F 1 2
2 F 1 2 -
+ 3 C 0
3 C 0 1
--------------------- ---------------------
3 2 D 2
2 B 5 2
C 12
1 + 12 = 13 D (1 + 16) – 12 = 5
Codes
Code BCD «Binary Coded Decimal» Code Gray ou binaire réfléchi
Décimal Codé Binaire : en français Code à symétries multiples 0
Chaque chiffre d'un nombre est codé sur 4 bits Construction 1 Symétrie
Exemple 1
Miroir
0
1 2 9 00
01 On complète par des 0 00
11 01
On complète par des 1
0 0 0 1 0 0 1 0 1 0 0 1 10 11
10
000 Symétrie
(129)10= ( 0001 0010 1001)BCD 10
001 11
5 6 2 011 01
0 1 0 On complète par des 0 00
1 1 0 On complète par des 1
0 1 0 1 0 1 1 0 0 0 1 0 111
101
(562)10= ( 0101 0110 0010)BCD 100
Code Gray
Codes
Conversion de la base binaire au code Gray Conversion du code Gray à la base binaire
Le bit de gauche, du poids le plus fort, reste le même Le bit de gauche, du poids le plus fort, reste le même qu’en
qu’en binaire; binaire;
De la gauche vers la droite, chaque bit est additionné à De la gauche vers la droite, on additionne au bit Gray le
son voisin de droite. La somme est reportée à la ligne résultat binaire de la colonne précédente. Les retenues sont
inférieure, qui correspond au code Gray. Les retenues négligées.
sont négligées. Le résultat en binaire comporte toujours le même nombre de
Le résultat en Gray comporte toujours le même bits que la représentation Gray.
nombre de bits que la représentation binaire ordinaire.
Représentation des caractères
Codage des caractères Exemple :
− Le code 65 (01000001)2 correspond au caractère A
− Le code 97 (01100001)2 correspond au caractère a
− Le code 58 (00111010)2 correspond au caractère :
Les caractères englobent : les lettres
alphabétiques ( A, a, B, b,.. ),
les chiffres, et les autres symboles
( > , ; / : …. ).
Le codage le plus utilisé est le ASCII
(American Standard Code for
Information Interchange).
Dans ce codage chaque caractère est
représenté sur 8 bits.
Avec 8 bits on peut avoir 28 = 256
combinaisons.
Chaque combinaison représente un
caractère.
Représentation des nombres entiers
Il existe deux types d’entiers :
Méthode1: signe/valeur absolue
− les entiers non signés ( positifs )
Si on travail sur n bits, alors le bit de poids fort indique le signe
− les entiers signés ( positifs ou négatifs )
du nombre:
Problème :Comment indiquer à la machine 0 indique un nombre positif
qu’un nombre est négatif ou positif ? 1 indique un nombre négatif
Il existe 3 méthodes pour représenter les nombres négatifs : Les autres bits indiquent la valeur absolue
− Signe / valeur absolue Exemple
− Complément à 1 (complément restreint )
− Complément à 2 (complément à vrai )
Avantage
Sur 3 bits on obtient :
C’est une représentation assez simple
Exemple
Remarque 2
Soit N=1010 sur 4 bits N’= (24 -1) - N
Le complément à un du complément à un d’un nombre est égale
N’=(16-1 ) - (10) = (1111)2 – (1010)2= 0101
au nombre lui même .
1010 N CA1(CA1(N))= N
+ On dispose également d’un bit de signe comme dans la méthode
0101 N’ « signe / valeur absolue » mais pour la valeur négative on prend
--------------------- le complément à 1 de la valeur absolue.
= 1111
Remarque 1 Pour la valeur positive on garde la même valeur que dans la
d’inverser tous les bits de ce nombre: le bit 0 devient 1 et le Pour la valeur négative on complément à 1 et on prend «1» pour
000 000 +0
001 001 +1
010 010 +2
011 011 +3
111 - 000 -0
110 - 001 -1
101 - 010 -2
100 - 011 -3
-3≤N≤+3
- ( 4-1 ) ≤ N ≤ + (4 -1 )
- (22-1) ≤ N ≤ + (22-1 )
- (2 (3 -1) -1) ≤ N ≤ + (2 (3 -1) -1 )
+113
+ 1 Additionne 1 Remarque 2
Dans cette représentation, le bit du poids fort nous indique le
= - 113 signe ( 0:positif, 1:négatif ).
Le complément à deux du complément à deux d’un nombre est
-128 + 8 + 4 + 2 +1
égale au nombre lui même.
CA2(CA2(N))= N
Représentation des nombres négatifs
Méthode 2: Représentation en complément à deux
Exemple CA2(0) = (111) + 1 = 1 000 = (000) sur 3 bits.
Quelle est la valeur décimale représentée par la valeur 101010 en On remarque que le zéro n’a pas une double
complément à deux sur 6 bits ? représentation.
Le bit du poids fort indique qu'il s'agit d'un nombre négatif.
Sur 3 bits on remarque -4≤N≤+3
Valeur = - CA2 (101010)
= - (010101 + 1) que les valeurs sont - 4 ≤ N ≤ + (4 -1 )
= - (010110)2
comprises entre - 22 ≤ N ≤ + (22-1 )
= - ( 22)
Sur 3 bits on obtient : - 4 et + 3.
- 2 (3 -1) ≤ N ≤ + (2 (3 -1) -1 )
Valeur en Valeur en Valeur Valeur en Valeur en Valeur
CA1 binaire décimal CA 2 binaire décimal Si on travail sur n bits, l’intervalle des
000 000 +0 000 000 +0 valeurs qu’on peut représenter en CA2:
001 001 +1 001 001 +1
- (2 (n -1) ) ≤ N ≤ + (2 (n -1) -1 )
010 010 +2 010 010 +2
011 011 +3 011 011 +3
La représentation en complément à deux
111 - 000 -0 111 - 001 -1
110 - 001 -1 110 - 010 -2 ( complément à vrai ) est la représentation la
101 - 010 -2 101 - 011 -3
plus utilisée pour la représentation des nombres
100 - 011 -3 100 - 100 -4
négatifs dans la machine.
Opérations arithmétiques en CA2
Effectuer les opérations suivantes sur 5 Bits, en utilisant
Si on prend deux nombres entiers a et b sur n bits, on
la représentation en CA2
remarque que la soustraction peut être ramener à une
addition : +9 0 1 0 0 1
+ Le résultat est positif
a–b=a+(-b)
+4 0 0 1 0 0 (01101)2= ( 13)10
Pour cela il suffit de trouver une valeur équivalente à - b? --------- -----------------------
+ 13 0 1 1 0 1
a – b = a + 2n – b = a + (2n –1) – b + 1
+9 0 1 0 0 1
On a b + CA1(b)= 2n – 1 donc CA1(b) = (2n – 1) – b Le résultat est positif
+
Si on remplace dans la première équation on obtient :
-4 1 1 1 0 0 (00101)2= ( 5)10
--------- -----------------------
a – b = a + CA1(b) + 1 +5 1 0 0 1 0 1
= a + CA2(b)
-9 1 0 1 1 1 +9 0 1 0 0 1
+ Le résultat est positif :
+
+9 0 0 1 0 1 (00000)2= ( 0)10 +8 0 1 0 0 0
--------- ----------------------- --------- -----------------------
+0 1 0 0 0 0 0 + 17 1 0 0 0 1
Report Négatif
Opérations arithmétiques en CA2
Retenue et débordement
Positif
Représentation des nombres fractionnaires
Ce sont des nombres qui comportent des chiffres après
la virgule.
Nombre sur N bits
Un nombre réel est constitué de deux parties : la partie
entière et la partie fractionnelle.
Conversion binaire -décimal d'une partie fractionnaire La partie entière est transformée en effectuant des divisions
successives.
On peut décomposer la partie fractionnaire en On multiplie la partie fractionnaire par n, On répète l’opération
puissance de 2 négatives. sur la partie fractionnaire du produit jusqu’à ce qu’elle soit nulle
(ou que la précision souhaitée soit atteinte),
Exemple : (0,101001)2 (0,64062510)10 Ce codage peut s’écrire sous la forme:
Remarque :
0,25 × 2 = 0,50 0 Le nombre de bits après la
1 virgule va déterminer la
0,50 × 2 = 1,00
précision.
0,00 × 2 = 0,00 0
(54 ,25) 10 = ( 110110,010) 2
Passage de la base 10 à la base 8 Nombre binaire à virgule flottante
Afin de représenter les très grands ou très petits nombres, nous utilisons
Exemple : (20,35)10 = (20) 10 + (0,35) 10
généralement une méthode assez pratique appelée notation scientifique.
=( 24,2631 )8
Exposant
( 20 )10 = ( 24 ) 8
Y = M.2E
0,35 × 8 = 2,80 2 Mantisse
0,80 × 8 = 6,40 6 La norme IEEE 754 normalise cette représentation. Elle distingue
2 représentations:
0,40 × 8 = 3,20 3
Format 32 bits simple précision (type float)
0,20 × 8 = 1,60 1 Format 64 bits double précision
− le signe est représenté par un seul bit, le bit de poids fort E+127
(celui le plus à gauche). Bit de signe 8 bits 23 bits
− l'exposant (décalé) est codé sur les 8 bits consécutifs au
32 bits
signe.
Il est inutile de ranger le chiffre 2 de la base 2 pour exprimer 2E
− la mantisse (les bits situés après la virgule) sur les 23 bits
puisque c'est identique pour tous les nombres (implicite).
restants.
Correspondance entre l'exposant réel (sur 8 bits en signé) et
− Ainsi le codage se fait sous la forme suivante:
l'exposant décalé (sur 8 bits):
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm Eréel
E translation de + 127
E = Eréel + 127
La norme IEEE 754 sur 32 bits Nombre binaire à virgule flottante
Exemple 1: Représentation en simple précision
Codage en binaire Exemple 2: Traduire en binaire format flottant simple précision
12,5 = 8 + 4 + 0,5 32 bits le nombre: -1039,0
12,5 = 23+ 22+ 2-1 1)Signe : 1
12,5 = (1100,1)2 2)Traduire en binaire (1039) 10= (0000 0100 0000 1111)2
3)Constituez la mantisse : 1, mantisse × 2n
+ 1, mantisse * 2 exposant
- 0000 0100 0000 1111 = 1,00 0000 1111 ×210
12,5 = +1,1001*23 Forme normalisée
simple précision (32 bits)? termes d'une suite géométrique de raison 2 -1.
Exposant Eréel
Il varie de -126 à + 127.
L'exposant E décalé varie donc de 1 à 254. Y max = (1+2-1+2-2+…+2-23) . 2127
Mantisse = (2 –2-23) . 2127
Mmin= (1,000 0000 0000 0000 0000 0000) b ~ 3,40282 . 1038
~
Mmax= (1,111 1111 1111 1111 1111 1111)b
Etendue des nombres réels normalisés
Le plus petit réel représentable dans ce format est :
Ymin = (1,000 0000 0000 0000 0000 0000)b. 2-126
= 2-126
-38
~~ 1,17549.10
Il est à noter que nous avons la même valeur en négatif (bit
de signe S = 1)!
Le plus grand réel représentable dans ce format est :
Ymax = (1,111 1111 1111 1111 1111 1111)b . 2127
= (1+2-1+2-2+…+2-23) . 2127
Etendue des nombres
Codages de zéro
Nous avons vu que la valeur minimale de l'exposant était
Eréel = -126 (pour les valeurs normalisées).
On utilise alors l'exposant Eréel = - 127 (E biaisé = 0) et une
mantisse nulle pour coder 0. On obtient donc deux
représentation de zéro:
Résumé
Codages de l'infini
Nous avons vu que la valeur maximale de l'exposant était
Eréel = 127.
On utilise alors l'exposant Eréel = 128 (E biaisé = 255) et
une mantisse nulle pour coder l'infini.
Etendue des nombres
Autres codages
Limites