Académique Documents
Professionnel Documents
Culture Documents
2
Introduction(1)
• Information numérique = information binaire
= 1 bit
• Représentée par 2 niveaux de tension
3
Introduction(2)
• Pourquoi la représentation binaire?
Simple à manipuler
• Traitement sur le processeur
• Stockage sur la mémoire
• Transfert sur le bus
Facile à représenter à l’aide de systèmes à deux états
Calcul simple en base 2
• Multiplication de deux chiffres binaires se résume à connaître 0x0=0,
0x1=0 et 1x1=1.
4
Calcul binaire et entiers positifs
Bases classiques en informatique
• Base 2
• La première base fondamentale est la base 2, elle permet le calcul
binaire
• Base 8 et 16
• la base 8 (octale): utilise les chiffres de 0 à 7,
• la base 16 (hexadécimale): utilise tous les chiffres décimaux ainsi que les
lettres de a à f (puisqu’il faut des symboles supplémentaires pour les
nombres de 10 à 15).
• En binaire b=2,
(X)b=10010 ai ∈ { 1,0 }
• En hexadécimal b=16,
(X)b=10AF7 ai ∈ { 0,1,2,...,9,A,... F }
6
Calcul binaire et entiers positifs
Changement de base
• Le calcul binaire
• Pas pratique (à cause de la taille des écritures),
• Pas intuitive (le cerveau humain ne calcule facilement qu’en base 10).
=>On doit donc souvent effectuer des changements de base entre la base 2 et les
bases 8, 10 ou 16.
7
Calcul binaire et entiers positifs
Changement de base
8
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 8 ou 16
Exemple: le nombre binaire 101101000110 en base 8, on exprime chaque groupe de
3 bits (en partant des bits de poids faible) dans son équivalent octal.
On obtient ici successivement de droite à gauche 110 → 6, 000 → 0, 101 → 5, 101 →
5, ce qui donne : 1011010001102 = 55068.
On opère de la même façon pour le passage vers la base 16, en regroupant les bits
quatre à quatre : (1011 0100 0110)2 = b4616
9
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 8 ou 16
Si le nombre de bits n’est pas divisible par 3 ou 4, il est alors nécessaire d’ajouter des
bits nuls en tête du nombre.
Par exemple : 11010102 = (001 101 010)2 = 1528 en octal et 11010102 = (0110 1010)2 =
6a16 en hexadécimal.
10
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 10
• Pour avoir la valeur décimale d’un nombre binaire, il suffit d’additionner les
puissances de 2 correspondant aux bits mis à 1 dans l’écriture binaire :
1011010001102 = 211 + 29 + 28 + 26 + 22 + 21 = 288610.
• Dans l’autre sens, il faut diviser le nombre décimal par 2, garder le reste, qui
donne le bit de poids faible, et recommencer avec le quotient, jusqu’à arriver à
un quotient égal à 1.
11
Calcul binaire et entiers positifs
Changement de base
Exemple :
011010001102 = 211 + 29 + 28 + 26 + 22 + 21 = 288610
12
Calcul binaire et entiers positifs
Aritméthique binaire
• Addition :
Exemple :
• Exemple :
14
Calcul binaire et entiers positifs
Aritméthique binaire
• Multiplication :
• Addition d’une opérande avec lui-même décalé
• Le résultat d’une opération de multiplication d’opérandes sur n bits est codé sur
2n bits.
15
Calcul binaire et entiers positifs
Aritméthique binaire
Exercice
16
Calcul binaire et entiers positifs
Aritméthique binaire
• Division :
17
Calcul binaire et entiers positifs
Débordement
• Il y a débordement si le résultat de l’opération n’est pas représentable
avec le codage utilisé.
Débordant = retenue sortante égale à 1
Exemple :
Cas de 25 + 22 sur 5 bits => débordement
Cas de 6 + 11 sur 4 bits => débordement
Case de 6+11 sur 5 bits => pas de débordement
18
Calcul binaire et entiers positifs
Débordement
• Exemple: voici un exemple sur 8 bits
• Le résultat de 156 + 168 dépasse 255 et ne peut donc pas s’exprimer sur
8 bits ; cela est matérialisé par la retenue finale.
19
Calcul binaire et entiers positifs
Débordement
• Exemple: voici un exemple sur 8 bits
• De la même façon, une soustraction peut amener à un résultat négatif,
non représentable avec des nombres non signés. Là encore, une retenue
finale indique un débordement.
• Dans les deux cas, le résultat obtenu n’est pas le résultat correct : il y a
débordement. Il faut pouvoir le détecter pour, par exemple, arrêter le
calcul. 20
Calcul des entiers relatifs
21
Calcul des entiers relatifs
• Cas de codage d’entiers négatifs sur n bits :
Signe et valeur absolue : le bit de poids fort sert à représenter le signe.
• (-3) = (1 0 1 1 )2
• Nombre entre -(2n-1-1) et (2n-1-1)
• La valeur 0 possède deux représentations: +0, c’est-à-dire 00…0, et –0 qui
s’écrit 10…0.
22
Calcul des entiers relatifs
• Complément à deux :
Exemple
23
Calcul des entiers relatifs
• Complément à deux : Astuce
24
Calcul des entiers relatifs
25
Calcul des entiers relatifs
• Cas de codage d’entiers négatifs sur n bits :
26
Calcul des entiers relatifs
27
Calcul des entiers relatifs
• Combien d’entiers positifs peut-on coder en binaire sur un octet ?
Correction : Un octet contient 8 bits, on peut donc coder 2 8 = 256 entiers.
28
Calcul des entiers relatifs
Arithmétique en signe et valeur
absolue
• Les règles classiques de manipulation (addition multiplication, ….) de
bits ne sont pas applicables.
Exemple : 5+(-4)
• Avant d’additionner deux nombres, il faut regarder s’ils sont de signes
opposés et, dans ce cas, procéder à une soustraction des valeurs absolues
puis retrouver le signe du résultat en fonction de la taille respective des
opérandes.
=> Ces contraintes ralentissent les opérations arithmétiques et, pour cette
raison, cette représentation n’est plus utilisée
29
Calcul des entiers relatifs
Arithmétique (Addition/Soustraction en
complément à 2)
Réaliser des opérations d'addition et de soustraction en binaire demande d'appliquer deux
méthodes différentes. Pour unifier ces méthodes, nous préférerons utiliser le codage des
nombres négatif en complément à deux.
Au lieu de réaliser une soustraction, nous additionnerons un nombre négatif :
x-y=x+(-y)
Il faut d’abord choisir le nombre de bits à utiliser pour représenter les deux nombres, en
faisant l’extension du singe correctement.
Les règles à appliquer pour interpréter les résultats d'addition en complément à deux sont
les suivantes :
1. Toujours ignorer les retenues générées
2. Si les opérandes sont de signes différents alors le résultat sera toujours juste
3. Si les opérandes sont de même signe, alors le résultat sera juste s’il est également du
même signe
30
Calcul des entiers relatifs
Arithmétique (Addition/Soustraction en
complément à 2)
31
• Arithmétique binaire naturel (Addition / Soustraction en complément à deux)
32
Calcul des entiers relatifs
Complément à deux
• Multiplication: Multiplication de deux nombres en Cà2:
Multiplication des valeurs absolues des deux nombres.
Complémenter à 2 si les deux nombres sont de signes contraires.
33
Calcul des entiers relatifs
Complément à deux
• Division: Division de deux nombres en Cà2:
• Division des valeurs absolues des deux nombres.
• Complémenter à 2 le quotient et la retenue si nécessaire.
34
Représentation des nombres réels à virgule
fixe
35
Représentation des nombres réels à virgule
fixe
36
Représentation des nombres réels
37
Représentation des nombres réels à virgule
fixe
Exemple : 28,862510 en binaire
• Conversion de 28 : 111002
• Conversion de 0,8625 :
0,8625 x 2 = 1,725 = 1 + 0,725
0,725 x 2 = 1,45= 1 + 0,45
0,45 x 2 = 0,9 = 0 + 0,9
0,9 x 2 =1,8 = 1 + 0,8
0,8 x 2 = 1,6 = 1 + 0,6 …
• 28,862510= (11100,11011...)2 38
Représentation des nombres réels à virgule
fixe
Exemple : 3,1415910 en hexadécimal
• Conversion de 3: 316
• Conversion de 0,14159:
0,14159 x16 = 2,26544 = 2 + 0,26544
0,26544 x 16 = 4,24704 = 4 + 0,24704
0,24704 x 16 = 3,95264 = 3 + 0,95264…
• 3,1415910 = (3,243…)16
39
Représentation des nombres réels à virgule
fixe
Le problème évident est que la plage des nombres représentables est assez limitée. On
est entre 2–p et 2n – p – 2–p , avec peu de précision après la virgule. Pour y remédier, on a
développé une autre représentation, appelée
« représentation en virgule flottante ».
40
Représentation des nombres réels virgule
flottante IEEE 754
Inspiré de l’écriture scientifique
• Exemple:
173,95 = + 1,7395 × 102
• Généralisation: soit x un réel
x= signe mantisse x 10n
• Avantage: permet de représenter des nombres très grands et très petits sans
s’encombrer de zéros
41
Représentation des nombres réels virgule
flottante IEEE 754
L’écriture devient alors:
signe mantisse x 2 n
Avec la mantisse et l’exposant en binaire
Le signe + est représenté par 0 et le signe − par 1
• La mantisse appartient à l’intervalle [1; 2[
• L’exposant est un entier relatif et il est établi de manière à ce que la mantisse soit de la
forme « 1,… »
42
Représentation des nombres à virgule flottante
• Représentation IEEE
IEEE 754
• Codage sur 32 bits sous la forme :
m … m e … e s
43
Représentation des nombres réels virgule
flottante IEEE 754
les caractéristiques
• Exposant (n): de – 126 à 127
• On effectue la somme n + 127 afin de coder l’exposant en binaire
• Mantisse: de 1 à 2-2-23
• Plus petit nombre normalisé: 2-126
• Plus grand nombre normalisé: presque 2128
44
Représentation des nombres réels virgule
flottante IEEE 754
Exemple: Codons le nombre −6, 625
• 6, 62510 = 110, 10102
• 110, 1010 = 1, 101010 × 22
• 10101000000000000000000
• 127 + 2 = 12910 = 100000012
• 1 10000001 10101000000000000000000
• En hexadécimal : C0 D4 00 00
45
Représentation des nombres réels virgule
flottante IEEE 754
Quelle est la valeur décimale des représentations internes suivantes?
1 1 0 0 0 0 0 1 0 11110110000000000000000
46
Représentation des nombres réels virgule
flottante IEEE 754
47
Représentation des nombres réels virgule
flottante IEEE 754
48
Représentation des nombres à virgule flottante
IEEE 754
Opérations
Addition de deux nombres différents : arithmétiques
L’addition de deux nombres flottants ne peut se faire que si les exposants sont égaux.
L’algorithme est le suivant :
1. Décaler la mantisse d’un des nombres pour aligner les exposants.
2. Additionner les mantisses (attention au signe).
3. Si nécessaire, renormaliser la mantisse sous la forme 1,M et décaler l’exposant.
4. Arrondir la mantisse (modifier la mantisse vers la plus proche valeur représentable)
49
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques
50
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques
51
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques
Soustraction en virgule flottante:
• Même principe que pour l’addition A+B = A+(-B)
• via le complément à deux
52
Représentation des nombres à virgule flottante
IEEE 754
Multiplication de Opérations arithmétiques
deux nombres flottants:
1. Multiplier les mantisses
2. Additionner les exposants en soustrayant une fois la valeur 127 pour
retomber sur exposant normalisé.
3. Si nécessaire, renormaliser la mantisse sous la forme 1,M et décaler
l’exposant.
4. Ajuster le signe du résultat en fonction des signes des nombres à
53
multiplier.
Représentation des nombres à virgule flottante
IEEE 754
La multiplicationOpérations
de 1,75 par 2,5 arithmétiques
1,75=1,75x20 => 0 01111111 1100000..0
2,5= 1,25x21 => 0 10000000 0100000…0
La multiplication des mantisses donne (10,0011)2
L’addition des exposants aboutit à un exposant de 128.
Renormaliser le nombre : 1,00011 x22
1,75x2,5= 0 10000001 0001100..0 54
Représentation des nombres à virgule flottante
IEEE 754
Opérations
Exercice : Effectuer la multiplicationarithmétiques
de A et B en simple précision : A = 1
10000010 000000000….
B = 0 10000011 000000000…
55
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques
56
Représentation des caractères
Table de correspondance entre caractère et code binaire : code ASCII American
Standard Code for Information Interchange.
Codage sur 7 bits.
Caractère de base pour la langue anglaise.
Code ASCII étendu : Codage sur 8 bits.
Pas de caractères chinois ni arabes.
Unicode : Codage sur16 bits.
57
Représentation des caractères
Représentation des caractères
Codage de l’information
60
Codage de l’information
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 1 1 1 1 0
1 1 1 1 1 1
303 pixels
0 1 0 0 1 0
36 bits
303 pixels
303 x 303 x 1 bit = 91809 bits
61
Codage de l’information
303 pixels
303 x 303 x 1 octet = 91809 octets
= 734 472 bits
303 pixels
62
Codage de l’information
303 pixels 63
Les fonctions et portes logiques
Les fonctions logiques de base :
64
Les fonctions et portes logiques
Les combinaisons des fonctions logiques de base :
65
Les circuits logiques (Additionneur)
Un ordinateur fait des calculs et utilise pour cela des circuits logiques. La plus simple est
l’addition qui nécessite deux types de circuits.
1. Le demi additionneur
→ Addition de 2 bits = circuit à 2 entrées
66
Les circuits logiques (Additionneur)
2. Le plein additionneur
Pour additionner de deux nombres de plusieurs bits il faut mettre en cascade des
additionneurs qui additionnent les bits correspondant des deux nombres plus les reports
Ri-1 issus des additions des bits précédents.
Exemple : Calculons 1 + 3 En binaire cela donne : 0001 + 0011 →
L’addition des bits de droite est une addition de deux bits, elle peut être réalisée avec le
demi additionneur
Il faut tenir compte d’un éventuel report pour les bits suivants. Ainsi dès le deuxième bit
de notre exemple (en comptant les bits de droite à gauche) il a fallu faire 2 additions ( 1 +
0 + 1 = 10 ⇒ on pose 0 et on reporte 1)
67
Les circuits logiques (Additionneur)
2. Le plein additionneur
Table de vérité du circuit plein additionneur
Cette table de vérité comporte 3 entrées : Rn-1 (le report de l’addition précédente), A et B
Il lui faut deux sorties :
• S = la somme de 3 bits (A + B + Rn-1)
• R = le nouveau report
70
Les circuits logiques (Multiplicateur)
principe
– génération de produits partiels
– addition des produits partiels
Multiplication séquentielle
Le résultat
– P contiendra les bits de poids fort
– A contiendra les bits de poids faibles
Les circuits logiques (Multiplicateur)
R P A B Itération
0 0000 0011 1001 initialisation
75
Les circuits logiques (diviseur)
Division:
A/B sur n bits non signée
– un registre A contenant le dividende
– un registre B contenant le diviseur
– un registre intermédiaire P
le résultat
– le registre A contient le quotient
– le registre P contient le reste
Les circuits logiques (diviseur)
Division : Réalisation
Les circuits logiques (diviseur)