Représentation des informations
A. MARTIN
Stanislas - PCSI1
Février 2015
1 / 108
PLAN
1 Numération
Bases de numération Changement de base Opérations arithmétiques Choix de la base 2
2 Eléments d’architecture logique Le transistor
Eléments de combinatoire Mémoriser : circuits séquentiels
3 Représentation des nombres entiers Entiers naturels
Entiers relatifs Notion de type
Dépassement de capacité
4 Nombres à virgule (flottante)
Arithmétique flottante (IEEE 754) Dépassement de capacité
Précision et arrondis
5 Représentation d’autres informations : caractères, sons, images Caractères
Son, images
2 / 108
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒ représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble de Q
Mémoire de taille finie⇒ pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
3 / 108
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒ représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble de Q
Mémoire de taille finie⇒ pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
4 / 108
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒ représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble de Q
Mémoire de taille finie⇒ pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
5 / 108
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒ représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble de Q
Mémoire de taille finie⇒ pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
6 / 108
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒ représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble de Q
Mémoire de taille finie⇒ pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
7 / 108
Numération
1 Numération
Bases de numération Changement de base Opérations arithmétiques Choix de la base 2
2 Eléments d’architecture logique
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
8 / 108
Numération Bases de numération
Bases de numération -
Définitions Définition : BaseB (B est un naturel)X =anBn+an−1Bn−1+· · ·+a0B0+a−1B−1+a−mB−m =
n
X
i=−m
aiBi
Représentation : X = (anan−1. . .a0,a−1. . .a−m)B Partie entière de X : (anan−1. . .a0)B
Partie décimale deX : (a−1. . .a−m)B
Bases courantes
Base Système chiffres nombres
10 décimal (arabes)ai ∈ {0,1, . . . ,9} 123,45
2 binaire (bits)ai ∈ {0,1} −101,00112
16 hexadécimal ai ∈ {0,1,2, . . .9,A,B,C,D,E,F} 5A5,FC2
9 / 108
Numération Bases de numération
Bases de numération -
Définitions Définition : BaseB (B est un naturel)X =anBn+an−1Bn−1+· · ·+a0B0+a−1B−1+a−mB−m =
n
X
i=−m
aiBi
Représentation : X = (anan−1. . .a0,a−1. . .a−m)B Partie entière de X : (anan−1. . .a0)B
Partie décimale deX : (a−1. . .a−m)B Bases courantes
Base Système chiffres nombres
10 décimal (arabes)ai ∈ {0,1, . . . ,9} 123,45
2 binaire (bits)ai ∈ {0,1} −101,00112
16 hexadécimal ai ∈ {0,1,2, . . .9,A,B,C,D,E,F} 5A5,FC2
10 / 108
Numération Changement de base
De la base B à la base 10
Représenter en base 10 un nombre en baseB transcrire les chiffres en base 10
si binaire : 0→0, 1→1;
si hexadécimal :
0→0, . . . ,A→10,B→11, . . .;
appliquer la définition de la décomposition, calculer en décimal.
Exemple
101,00112 = 1×22+0×21+1×20+. . .
0×2−1+0×2−2+1×2−3+1×2−4
= 5,187510
à compléter...
11 / 108
Numération Changement de base
De la base B à la base 10
Représenter en base 10 un nombre en baseB transcrire les chiffres en base 10
si binaire : 0→0, 1→1;
si hexadécimal :
0→0, . . . ,A→10,B→11, . . .;
appliquer la définition de la décomposition, calculer en décimal.
Exemple
101,00112 = 1×22+0×21+1×20+. . .
0×2−1+0×2−2+1×2−3+1×2−4
= 5,187510
à compléter...
12 / 108
Numération Changement de base
De la base B à la base 10
Représenter en base 10 un nombre en baseB transcrire les chiffres en base 10
si binaire : 0→0, 1→1;
si hexadécimal :
0→0, . . . ,A→10,B→11, . . .;
appliquer la définition de la décomposition, calculer en décimal.
Exemple
101,00112 = 1×22+0×21+1×20+. . .
0×2−1+0×2−2+1×2−3+1×2−4
= 5,187510
à compléter...
13 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510 en base 10, 2, ou 16.
14 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510 en base 10, 2, ou 16.
en base 10...
15 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510 en base 10, 2, ou 16.
en base 10...
16 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510 en base 10, 2, ou 16.
en base 10... Résultat :
14510 = 100100012
= 9116
17 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510 en base 10, 2, ou 16.
en base 10... Résultat :
14510 = 100100012
= 9116
Remarque : passage facile en héxadécimal en groupant les bits par quartet de droite à gauche (car 24 =16) : (1001
| {z }
916
0001
| {z }
116
)2
18 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie décimaleMéthode 1
Multiplier successivement par B puis relever et retrancher la partie entière.
Exemple : passage de 0,145 en base 2 puis base 16.
Attention : peut conduire à une infinité de chiffres ds la nvelle base !
Méthode 2
Imposer le nombre de Chiffre Significatif (CS) msouhaité puis multiplier la partie décimale parBm, puis coder sa partie entière.
Exemple : 8 CS en base 2, ou 2 CS en base 16 (même précision). 0,145×28 =37,12 puis 3710=001001012 donc 0,145≈0,001001012 0,145×162 =37,12 puis 3710=2516donc 0,145≈0,2516
19 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie décimaleMéthode 1
Multiplier successivement par B puis relever et retrancher la partie entière.
Exemple : passage de 0,145 en base 2 puis base 16.
Attention : peut conduire à une infinité de chiffres ds la nvelle base !
Méthode 2
Imposer le nombre de Chiffre Significatif (CS) msouhaité puis multiplier la partie décimale parBm, puis coder sa partie entière.
Exemple : 8 CS en base 2, ou 2 CS en base 16 (même précision). 0,145×28 =37,12 puis 3710=001001012 donc 0,145≈0,001001012 0,145×162 =37,12 puis 3710=2516donc 0,145≈0,2516
20 / 108
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie décimaleMéthode 1
Multiplier successivement par B puis relever et retrancher la partie entière.
Exemple : passage de 0,145 en base 2 puis base 16.
Attention : peut conduire à une infinité de chiffres ds la nvelle base !
Méthode 2
Imposer le nombre de Chiffre Significatif (CS) msouhaité puis multiplier la partie décimale parBm, puis coder sa partie entière.
Exemple : 8 CS en base 2, ou 2 CS en base 16 (même précision).
0,145×28 =37,12 puis 3710=001001012 donc 0,145≈0,001001012 0,145×162 =37,12 puis 3710=2516donc 0,145≈0,2516
21 / 108
Numération Opérations arithmétiques
Opérations arithmétiques -
Exemple en binaireOpérations +,−,×et /
Mêmes algorithmes / techniques de calcul qu’en base 10.
Penser aux retenues : +1 (additions) ou−1 (soustractions)
Exemple : soienta=1010=10102 et b=710=1112
a+b :
a+b=1710=100012
a×b :
a×b =7010=10001102
22 / 108
Numération Opérations arithmétiques
Opérations arithmétiques -
Exemple en binaireOpérations +,−,×et /
Mêmes algorithmes / techniques de calcul qu’en base 10.
Penser aux retenues : +1 (additions) ou−1 (soustractions) Exemple : soienta=1010=10102 et b=710=1112
a+b :
a+b=1710=100012
a×b :
a×b =7010=10001102
23 / 108
Numération Opérations arithmétiques
Opérations arithmétiques -
Exemple en binaireOpérations +,−,×et /
Mêmes algorithmes / techniques de calcul qu’en base 10.
Penser aux retenues : +1 (additions) ou−1 (soustractions) Exemple : soienta=1010=10102 et b=710=1112
a+b :
a+b=1710=100012
a×b :
a×b =7010=10001102
24 / 108
Numération Choix de la base 2
Quelle base choisir pour l’ordinateur ?
Base 10 : une base pour les humains plus facile de compter sur ses doigts !
Base 16 : une base pour condenser l’écriture (binaire/4)
Transmettre des "mots" très longs (ex: clés de sécurité, adresses MAC; ...). Base 2 : une base pour les machines
Des perturbations physiques s’ajoutent au signal : fluctuations naturelles dues au bruit, ou perturbations exceptionnelles (choc, ...).
⇒ Erreurs possibles lors du stockage, de la lecture ou de la transmission.
⇒ nécessité d’augmenter la robustesse.
Systèmeanalogique : un infinité d’états⇒ transformation / dégradation inéluctable de l’information⇒ manque de fiabilité. Systèmediscret multi-états⇒ risquefortd’erreur.
Systèmediscret à deux états ⇒risquefaible d’erreur.
25 / 108
Numération Choix de la base 2
Quelle base choisir pour l’ordinateur ?
Base 10 : une base pour les humains plus facile de compter sur ses doigts !
Base 16 : une base pour condenser l’écriture (binaire/4)
Transmettre des "mots" très longs (ex: clés de sécurité, adresses MAC; ...).
Base 2 : une base pour les machines
Des perturbations physiques s’ajoutent au signal : fluctuations naturelles dues au bruit, ou perturbations exceptionnelles (choc, ...).
⇒ Erreurs possibles lors du stockage, de la lecture ou de la transmission.
⇒ nécessité d’augmenter la robustesse.
Systèmeanalogique : un infinité d’états⇒ transformation / dégradation inéluctable de l’information⇒ manque de fiabilité. Systèmediscret multi-états⇒ risquefortd’erreur.
Systèmediscret à deux états ⇒risquefaible d’erreur.
26 / 108
Numération Choix de la base 2
Quelle base choisir pour l’ordinateur ?
Base 10 : une base pour les humains plus facile de compter sur ses doigts !
Base 16 : une base pour condenser l’écriture (binaire/4)
Transmettre des "mots" très longs (ex: clés de sécurité, adresses MAC; ...).
Base 2 : une base pour les machines
Des perturbations physiques s’ajoutent au signal : fluctuations naturelles dues au bruit, ou perturbations exceptionnelles (choc, ...).
⇒ Erreurs possibles lors du stockage, de la lecture ou de la transmission.
⇒ nécessité d’augmenter la robustesse.
Systèmeanalogique : un infinité d’états⇒ transformation / dégradation inéluctable de l’information⇒ manque de fiabilité.
Systèmediscret multi-états⇒ risquefortd’erreur.
Systèmediscret à deux états⇒ risquefaible d’erreur. 27 / 108
Numération Choix de la base 2
La base 2 en machine -
Mots binairesMots binaires : des nombres à taille fixe pour le processeur et la mémoire 8 bits = 1 Octet (Byte). 28 =256 possibilités.
Ex: caractère alphanumérique (ISO-8859), palette de couleurs / niveaux de gris.
32 bits⇒ 232≈ 4 milliards de possibilités.
Ex: nombres entiers relatifs,...
64 bits⇒ 264≈ 2×1019 possibilités.
Ex: codage des nombres réels en virgule flottante (norme IEEE 754).
Machines 64 bits : le format d’aujourd’hui et de demain !
Remarque : certains types de données nécessitent une agrégation de ces types simples (ex: tableaux, listes, ensembles, dictionnaires,...).
Bit de poids fort ou faible (MSB: Most Significant Bit, LSB: Least...) ( 1
|{z}
27:fort
0 1 0 0 0 1 1
|{z}
20:faible
)2
28 / 108
Numération Choix de la base 2
La base 2 en machine -
Mots binairesMots binaires : des nombres à taille fixe pour le processeur et la mémoire 8 bits = 1 Octet (Byte). 28 =256 possibilités.
Ex: caractère alphanumérique (ISO-8859), palette de couleurs / niveaux de gris.
32 bits⇒ 232≈ 4 milliards de possibilités.
Ex: nombres entiers relatifs,...
64 bits⇒ 264≈ 2×1019 possibilités.
Ex: codage des nombres réels en virgule flottante (norme IEEE 754).
Machines 64 bits : le format d’aujourd’hui et de demain !
Remarque : certains types de données nécessitent une agrégation de ces types simples (ex: tableaux, listes, ensembles, dictionnaires,...).
Bit de poids fort ou faible (MSB: Most Significant Bit, LSB: Least...) ( 1
|{z}
27:fort
0 1 0 0 0 1 1
|{z}
20:faible
)2
29 / 108
Numération Choix de la base 2
La base 2 en machine -
Mots binairesMots binaires : des nombres à taille fixe pour le processeur et la mémoire 8 bits = 1 Octet (Byte). 28 =256 possibilités.
Ex: caractère alphanumérique (ISO-8859), palette de couleurs / niveaux de gris.
32 bits⇒ 232≈ 4 milliards de possibilités.
Ex: nombres entiers relatifs,...
64 bits⇒ 264≈ 2×1019 possibilités.
Ex: codage des nombres réels en virgule flottante (norme IEEE 754).
Machines 64 bits : le format d’aujourd’hui et de demain !
Remarque : certains types de données nécessitent une agrégation de ces types simples (ex: tableaux, listes, ensembles, dictionnaires,...).
Bit de poids fort ou faible (MSB: Most Significant Bit, LSB: Least...) ( 1
|{z}
27:fort
0 1 0 0 0 1 1
|{z}
20:faible
)2
30 / 108
Numération Choix de la base 2
La base 2 en machine
Multiples- en octets (Bytes, B) plutôt qu’en bits (b): 1 B=8 b
Nom Notation Valeur kibibit Kibit 210=1024 b kilobit kbit 103 =1000 b
mebioctet MiB 220=10242=1 048 576 B megaoctet MB 106 =1 000 000 B
gebioctet GiB 230=10243=1 073 741 824 B gigaoctet GB 109 =1 000 000 000 B
tebioctet TiB 240=10243=1 099 511 627 776 B teraoctet TB 1012=1 000 000 000 000 B
1 bit est un booléen : (0,1)↔(Vrai,Faux)
La manipulation des nombres en binaire s’exprime via l’algèbre de Boole.
⇒ le microprocesseur est un assemblage de PORTES LOGIQUES.
31 / 108
Numération Choix de la base 2
La base 2 en machine
Multiples- en octets (Bytes, B) plutôt qu’en bits (b): 1 B=8 b
Nom Notation Valeur kibibit Kibit 210=1024 b kilobit kbit 103 =1000 b
mebioctet MiB 220=10242=1 048 576 B megaoctet MB 106 =1 000 000 B
gebioctet GiB 230=10243=1 073 741 824 B gigaoctet GB 109 =1 000 000 000 B
tebioctet TiB 240=10243=1 099 511 627 776 B teraoctet TB 1012=1 000 000 000 000 B
1 bit est un booléen : (0,1)↔(Vrai,Faux)
La manipulation des nombres en binaire s’exprime via l’algèbre de Boole.
⇒ le microprocesseur est un assemblage de PORTES LOGIQUES.
32 / 108
Eléments d’architecture logique
1 Numération
2 Eléments d’architecture logique Le transistor
Eléments de combinatoire Mémoriser : circuits séquentiels
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
33 / 108
Eléments d’architecture logique Le transistor
Le transistor -
la brique de baseTransistor : double jonction de semi-conducteurs dopés N et P
La tension appliquée entre la Grille et laSourcecommande le passage du courant entre leDrain et laSource.
Deux états,passant ou bloqué, selon que la tension est positive ou nulle.
Transitors MOS de type N (gauche) et P (droite)
34 / 108
Eléments d’architecture logique Le transistor
Le transistor -
la brique de baseTransistor : double jonction de semi-conducteurs dopés N et P
La tension appliquée entre la Grille et laSourcecommande le passage du courant entre leDrain et laSource.
Deux états,passant ou bloqué, selon que la tension est positive ou nulle.
Transitors MOS de type N (gauche) et P (droite)
formation d’un tunnel dans le N-MOS
Etat PASSANT
35 / 108
Eléments d’architecture logique Eléments de combinatoire
Algèbre de Boole et portes logiques
Théorèmes de Morgan: A.B=A+B etA+B =A.B Transformer les ET en OU et vice-versa.
⇒ Le couple (ET, NON) ou le couple (OU, NON) suffisent donc à exprimer n’importe quelle formule algébrique combinatoire.
Opérateur complet
Opérateur qui permet à lui seul d’exprimer n’importe quelle fonction combinatoire.
Porte logique=Circuit combinatoire
Circuit tel que l’état des sorties ne dépend que de l’état des entrées. Les mêmes entrées conduisent toujours aux mêmes sorties : absence d’état interne.
36 / 108
Eléments d’architecture logique Eléments de combinatoire
Algèbre de Boole et portes logiques
Théorèmes de Morgan: A.B=A+B etA+B =A.B Transformer les ET en OU et vice-versa.
⇒ Le couple (ET, NON) ou le couple (OU, NON) suffisent donc à exprimer n’importe quelle formule algébrique combinatoire.
Opérateur complet
Opérateur qui permet à lui seul d’exprimer n’importe quelle fonction combinatoire.
Porte logique=Circuit combinatoire
Circuit tel que l’état des sorties ne dépend que de l’état des entrées. Les mêmes entrées conduisent toujours aux mêmes sorties : absence d’état interne.
37 / 108
Eléments d’architecture logique Eléments de combinatoire
Algèbre de Boole et portes logiques
Théorèmes de Morgan: A.B=A+B etA+B =A.B Transformer les ET en OU et vice-versa.
⇒ Le couple (ET, NON) ou le couple (OU, NON) suffisent donc à exprimer n’importe quelle formule algébrique combinatoire.
Opérateur complet
Opérateur qui permet à lui seul d’exprimer n’importe quelle fonction combinatoire.
Porte logique=Circuit combinatoire
Circuit tel que l’état des sorties ne dépend que de l’état des entrées.
Les mêmes entrées conduisent toujours aux mêmes sorties : absence d’état interne.
38 / 108
Eléments d’architecture logique Eléments de combinatoire
Portes logiques
Porte NON (NOT) :A
Porte NON-OU(NOR) -A+B : Opérateur complet Permet en effet de former un NOT en reliant ses deux entrées.
39 / 108
Eléments d’architecture logique Eléments de combinatoire
Portes logiques
Porte NON (NOT) :A
Porte NON-OU(NOR) -A+B : Opérateur complet Permet en effet de former un NOT en reliant ses deux entrées.
40 / 108
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
Des circuits séquentielsDéfinition : Circuit séquentiel
Circuit dont les valeurs de ses sortiesne dépendent pas que des valeurs de sesentrées, mais aussi d’unétat internequi dépend de l’historique des valeurs d’entrées précédentes.
état interne = bit d’information
Mémoire vive DYNAMIQUE
état interne : charge d’un condensateur A: ligne de commande, B: ligne de donnée A=0⇒isolement,A=1⇒lecture ou écriture Mémoire vive STATIQUE(portes logiques)
Etat interne = sortie d’une porte logique
Nécessité d’un REBOUCLAGE de certains signaux de sortie vers l’entrée.
41 / 108
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
Des circuits séquentielsDéfinition : Circuit séquentiel
Circuit dont les valeurs de ses sortiesne dépendent pas que des valeurs de sesentrées, mais aussi d’unétat internequi dépend de l’historique des valeurs d’entrées précédentes.
état interne = bit d’information
Mémoire vive DYNAMIQUE
état interne : charge d’un condensateur A: ligne de commande, B: ligne de donnée A=0⇒isolement,A=1⇒lecture ou écriture Mémoire vive STATIQUE(portes logiques)
Etat interne = sortie d’une porte logique
Nécessité d’un REBOUCLAGE de certains signaux de sortie vers l’entrée.
42 / 108
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
La bascule RS (ou verrou RS)La cellule mémoire statique la plus simple : La bascule RS (Reset Set) 2 portes NOR tête-bêche
circuitbistable : 2 états stables en sortie (Q,Q¯) = (0,1) ou(1,0) 2 entrées : R (Reset) etS (Set)
Fonctionnement
mode lecture : (R,S) = (0,0) Enregistrer 0 :
R →1→0⇒(Q,Q) = (0,¯ 1) Enregistrer 1 :
S →1→0⇒(Q,Q¯) = (1,0) Etat interne = bit mémorisé (Q ou Q)
43 / 108
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
La bascule RS (ou verrou RS)La cellule mémoire statique la plus simple : La bascule RS (Reset Set) 2 portes NOR tête-bêche
circuitbistable : 2 états stables en sortie (Q,Q¯) = (0,1) ou(1,0) 2 entrées : R (Reset) etS (Set)
Fonctionnement
mode lecture : (R,S) = (0,0) Enregistrer 0 :
R →1→0⇒(Q,Q) = (0,¯ 1) Enregistrer 1 :
S →1→0⇒(Q,Q¯) = (1,0) Etat interne = bit mémorisé (Q ou Q)
44 / 108
Représentation des nombres entiers
1 Numération
2 Eléments d’architecture logique
3 Représentation des nombres entiers Entiers naturels
Entiers relatifs Notion de type
Dépassement de capacité
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
45 / 108
Représentation des nombres entiers Entiers naturels
Entiers naturels
Principe : nombre représenté en base 2 sur N bits Exemple : n=14510
sur un octet (N =8) : 14510=100100012 sur N =16 bits : 14510=00000000100100012
sur N =4 bits : impossible ! (24=16 possibilités<145+1)
Capacité : 2N nombres entiersn∈[0;2N−1] sur N =8 bits : 0 à 255
sur N =16 bits : 0 à 65535 sur N =32 bits : 0 à 4294967295
sur N =64 bits : 0 à 18446744073709551615
46 / 108
Représentation des nombres entiers Entiers naturels
Entiers naturels
Principe : nombre représenté en base 2 sur N bits Exemple : n=14510
sur un octet (N =8) : 14510=100100012 sur N =16 bits : 14510=00000000100100012
sur N =4 bits : impossible ! (24=16 possibilités<145+1) Capacité : 2N nombres entiersn∈[0;2N−1]
sur N =8 bits : 0 à 255 sur N =16 bits : 0 à 65535 sur N =32 bits : 0 à 4294967295
sur N =64 bits : 0 à 18446744073709551615
47 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Magnitude signéePrincipe (sur N bits)
bit de poids fort pour le signe : 0=positif, 1=négatif N−1 bits pour la valeur absolue ("magnitude") Capacité : n∈[−(2N−1−1);2N−1−1]
Exemple : N =8 bits +2510=000110012
−2510=100110012 n∈[−127;127] Inconvénients
Existence de deux zéros : 000000002 =100000002
Les opérations de base entre deux nombres ne sont plus élémentaires
48 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Magnitude signéePrincipe (sur N bits)
bit de poids fort pour le signe : 0=positif, 1=négatif N−1 bits pour la valeur absolue ("magnitude") Capacité : n∈[−(2N−1−1);2N−1−1]
Exemple : N =8 bits +2510=000110012
−2510=100110012 n∈[−127;127]
Inconvénients
Existence de deux zéros : 000000002 =100000002
Les opérations de base entre deux nombres ne sont plus élémentaires
49 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Magnitude signéePrincipe (sur N bits)
bit de poids fort pour le signe : 0=positif, 1=négatif N−1 bits pour la valeur absolue ("magnitude") Capacité : n∈[−(2N−1−1);2N−1−1]
Exemple : N =8 bits +2510=000110012
−2510=100110012 n∈[−127;127]
Inconvénients
Existence de deux zéros : 000000002=100000002
Les opérations de base entre deux nombres ne sont plus élémentaires
50 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Principe : représenter les nombres négatifs par des nombres positifs...
nombres positifs : n∈[0;2N−1−1]
nombres négatifs : bijection / translation
−2N−1;−1 → [2N−1,2N −1]
n 7→ n+2N
Exemples
N =4 bits⇒n ∈[−8;7] N =8 bits⇒n ∈[−128;127] N =16 bits ⇒n∈[−32768;32767] . . .
51 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Principe : représenter les nombres négatifs par des nombres positifs...
nombres positifs : n∈[0;2N−1−1]
nombres négatifs : bijection / translation
−2N−1;−1 → [2N−1,2N −1]
n 7→ n+2N
Exemples
N =4 bits⇒n ∈[−8;7]
N =8 bits⇒n ∈[−128;127]
N =16 bits ⇒n ∈[−32768;32767]
. . .
52 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2En pratique : 2N+n= (2N −1) +n+1
Base 10 à 2 : −25107→ −25+28=−25+256=23110=111001112 En base 2 : un nombre négatif s’obtient en ajoutant 1 au
complément bit à bita de sa valeur absolue.
+2510=000110012
−25107→(28−1)10−2510+1=111111112−000110012+1= 111001102+1=111001112
aLecomplément bit à bitest aussi appelécomplément à 1.
Propriétés
Le bit de poids fort indique toujours le signe : 0=positif, 1=négatif. Le complément à 2 d’un entier positif est lui-même (à condition de ne pas tenir compte de la dernière retenue):
+2510+28=000110012+1000000002= (1)000110012=000110012= +2510
53 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2En pratique : 2N+n= (2N −1) +n+1
Base 10 à 2 : −25107→ −25+28=−25+256=23110=111001112 En base 2 : un nombre négatif s’obtient en ajoutant 1 au
complément bit à bita de sa valeur absolue.
+2510=000110012
−25107→(28−1)10−2510+1=111111112−000110012+1= 111001102+1=111001112
aLecomplément bit à bitest aussi appelécomplément à 1.
Propriétés
Le bit de poids fort indique toujours le signe : 0=positif, 1=négatif.
Le complément à 2 d’un entier positif est lui-même (à condition de ne pas tenir compte de la dernière retenue):
+2510+28=000110012+1000000002= (1)000110012=000110012= +2510 54 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 255 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 256 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Conséquence
On peut incrémenter naturellement/continûment des négatifs aux positifs (respectivement décrémenter des positifs aux négatifs)... à condition de ne pas tenir compte de la dernière retenue (dropping the carry bit).
Une soustraction se calcule comme une addition en prenant la représentation en complément à 2:
n−m=n+ (−m)7→n+ (−m+2N) = (n−m) +2N
Exemple
5−3=27→01012+11012= (1)00102 =00102 =2
57 / 108
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Conséquence
On peut incrémenter naturellement/continûment des négatifs aux positifs (respectivement décrémenter des positifs aux négatifs)... à condition de ne pas tenir compte de la dernière retenue (dropping the carry bit).
Une soustraction se calcule comme une addition en prenant la représentation en complément à 2:
n−m=n+ (−m)7→n+ (−m+2N) = (n−m) +2N Exemple
5−3=27→01012+11012= (1)00102 =00102 =2
58 / 108
Représentation des nombres entiers Notion de type
Notion de type
L’interprétation d’un mot binaire dépend du codage utilisé Entier positif non signé VS entier négatif signé en complément à 2;
1 entier 32 bits VS 2 entiers 16 bits côte à côte;
1 entier VS un réel, un caractère, un objet complexe (liste, vecteur, tableau, dictionnaire, classe . . . )
Conséquence : nécessité de définir des TYPES de données
une méthode de codage associée (ex : magnitude signée sur 32 bits); un espace mémoire alloué;
Typage dynamique: une spécificité de Python, Scilab, Matlab, . . . L’ordinateur réalise lui-même cette opération de typage «à la volée», lors de l’exécution du code. Le programmeur est déchargé de cette tâche.
plus souple, plus rapide, plus adapté au développement initial; plus coûteux en mémoire (donc en temps de calcul), plus dangereux (détection des erreurs de type difficile).
59 / 108
Représentation des nombres entiers Notion de type
Notion de type
L’interprétation d’un mot binaire dépend du codage utilisé Entier positif non signé VS entier négatif signé en complément à 2;
1 entier 32 bits VS 2 entiers 16 bits côte à côte;
1 entier VS un réel, un caractère, un objet complexe (liste, vecteur, tableau, dictionnaire, classe . . . )
Conséquence : nécessité de définir des TYPES de données
une méthode de codage associée (ex : magnitude signée sur 32 bits);
un espace mémoire alloué;
Typage dynamique: une spécificité de Python, Scilab, Matlab, . . . L’ordinateur réalise lui-même cette opération de typage «à la volée», lors de l’exécution du code. Le programmeur est déchargé de cette tâche.
plus souple, plus rapide, plus adapté au développement initial; plus coûteux en mémoire (donc en temps de calcul), plus dangereux (détection des erreurs de type difficile).
60 / 108
Représentation des nombres entiers Notion de type
Notion de type
L’interprétation d’un mot binaire dépend du codage utilisé Entier positif non signé VS entier négatif signé en complément à 2;
1 entier 32 bits VS 2 entiers 16 bits côte à côte;
1 entier VS un réel, un caractère, un objet complexe (liste, vecteur, tableau, dictionnaire, classe . . . )
Conséquence : nécessité de définir des TYPES de données
une méthode de codage associée (ex : magnitude signée sur 32 bits);
un espace mémoire alloué;
Typage dynamique: une spécificité de Python, Scilab, Matlab, . . . L’ordinateur réalise lui-même cette opération de typage «à la volée», lors de l’exécution du code. Le programmeur est déchargé de cette tâche.
plus souple, plus rapide, plus adapté au développement initial;
plus coûteux en mémoire (donc en temps de calcul), plus dangereux (détection des erreurs de type difficile).
61 / 108
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité (overflow)
Définition : une opération conduit à un nombre non représentable Ex: addition de deux entiers met n signés en complément à 2 surN bits
m+n ≥2N−1⇒ dépassement positif;
−2N−1≤m+n<2N−1 ⇒ résultat correct;
m+n ≤ −2N−1−1⇒ dépassement négatif;
Remarque : jamais de dépassement dansm+n sim n<0.
Exemple : entiers relatif sur N =4 bits⇒n∈[−8;7] mod 24
7+2=−7 ou −5−4=7 Ladétection est parfois possible - Exemple de l’addition
Deux nombres de même signe conduisent à une somme de signe opposé. . . Spécificité de Python
Adaptation du nombre de bits utilisés en fonction de la taille du nombre : type «à géométrie variable» (totalement transparent depuis Python 3).
62 / 108
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité (overflow)
Définition : une opération conduit à un nombre non représentable Ex: addition de deux entiers met n signés en complément à 2 surN bits
m+n ≥2N−1⇒ dépassement positif;
−2N−1≤m+n<2N−1 ⇒ résultat correct;
m+n ≤ −2N−1−1⇒ dépassement négatif;
Remarque : jamais de dépassement dansm+n sim n<0.
Exemple : entiers relatif sur N =4 bits ⇒n∈[−8;7] mod 24 7+2=−7 ou −5−4=7
Ladétection est parfois possible - Exemple de l’addition
Deux nombres de même signe conduisent à une somme de signe opposé. . . Spécificité de Python
Adaptation du nombre de bits utilisés en fonction de la taille du nombre : type «à géométrie variable» (totalement transparent depuis Python 3).
63 / 108
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité (overflow)
Définition : une opération conduit à un nombre non représentable Ex: addition de deux entiers met n signés en complément à 2 surN bits
m+n ≥2N−1⇒ dépassement positif;
−2N−1≤m+n<2N−1 ⇒ résultat correct;
m+n ≤ −2N−1−1⇒ dépassement négatif;
Remarque : jamais de dépassement dansm+n sim n<0.
Exemple : entiers relatif sur N =4 bits ⇒n∈[−8;7] mod 24
7+2=−7 ou −5−4=7 Ladétection est parfois possible - Exemple de l’addition
Deux nombres de même signe conduisent à une somme de signe opposé. . .
Spécificité de Python
Adaptation du nombre de bits utilisés en fonction de la taille du nombre : type «à géométrie variable» (totalement transparent depuis Python 3).
64 / 108
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité (overflow)
Définition : une opération conduit à un nombre non représentable Ex: addition de deux entiers met n signés en complément à 2 surN bits
m+n ≥2N−1⇒ dépassement positif;
−2N−1≤m+n<2N−1 ⇒ résultat correct;
m+n ≤ −2N−1−1⇒ dépassement négatif;
Remarque : jamais de dépassement dansm+n sim n<0.
Exemple : entiers relatif sur N =4 bits ⇒n∈[−8;7] mod 24
7+2=−7 ou −5−4=7 Ladétection est parfois possible - Exemple de l’addition
Deux nombres de même signe conduisent à une somme de signe opposé. . . Spécificité de Python
Adaptation du nombre de bits utilisés en fonction de la taille du nombre : type «à géométrie variable» (totalement transparent depuis Python 3).
65 / 108
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité -
Exemple à 4 bits66 / 108
Nombres à virgule (flottante)
1 Numération
2 Eléments d’architecture logique
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
Arithmétique flottante (IEEE 754) Dépassement de capacité
Précision et arrondis
5 Représentation d’autres informations : caractères, sons, images
67 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Représenter les réels ?
Les entiers : une infinité discrète
Représentation exacte possible mais sur un intervalle delongueur finie.
Les réels : une infinité continue
Impossibilité de représentation correcte même d’un petit intervalle :
∀(a,b)∈R2\a6=b,∃c ∈R\a<c <b
⇒ Erreurs d’arrondis, de troncature.
Conséquence
On ne peut représenter qu’un sous ensemble de Q: "nombres à virgule"... de taille limitée, et représentable en binaire !
68 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Représenter les réels ?
Les entiers : une infinité discrète
Représentation exacte possible mais sur un intervalle delongueur finie.
Les réels : une infinité continue
Impossibilité de représentation correcte même d’un petit intervalle :
∀(a,b)∈R2\a6=b,∃c ∈R\a<c <b
⇒ Erreurs d’arrondis, de troncature.
Conséquence
On ne peut représenter qu’un sous ensemble de Q: "nombres à virgule"... de taille limitée, et représentable en binaire !
69 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Représenter les réels ?
Les entiers : une infinité discrète
Représentation exacte possible mais sur un intervalle delongueur finie.
Les réels : une infinité continue
Impossibilité de représentation correcte même d’un petit intervalle :
∀(a,b)∈R2\a6=b,∃c ∈R\a<c <b
⇒ Erreurs d’arrondis, de troncature.
Conséquence
On ne peut représenter qu’un sous ensemble de Q: "nombres à virgule"... de taille limitée, et représentable en binaire !
70 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres à virgule
Rappel : nombres réels en virgule fixe
110,0112 = 1×22+1×21+0×20+0×2−1+1×2−2+1×2−3
= 6,37510
Problème : difficulté pour représenter les nombres très grands (NA) ou très petits (h).
Nombres réels en virgule flottante - (floats,floating point format) Plus de précision . . .
En base 10 :
309963,400=3,09963400×105 En base 2 :
101010,102 = 1,01010102×25 0,001000112 = 1,000112×2−3
71 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres à virgule
Rappel : nombres réels en virgule fixe
110,0112 = 1×22+1×21+0×20+0×2−1+1×2−2+1×2−3
= 6,37510
Problème : difficulté pour représenter les nombres très grands (NA) ou très petits (h).
Nombres réels en virgule flottante - (floats,floating point format) Plus de précision . . .
En base 10 :
309963,400=3,09963400×105 En base 2 :
101010,102 = 1,01010102×25 0,001000112 = 1,000112×2−3
72 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754)
Soit x ∈R:
x = (−1)s ×M×2E un bit de signe s : s =0,1;
unemantisse M : nombre à virgule binaire M ∈[1,2[ detaille fixée.
Toujours 1 avant la virgule⇒non codé :M=1,00101→f =00101.
unexposant E : entier relatif detaille limitée;
Codé surN bitsen biais:
E ∈[−(2N−1−1),2N−1]7→e=E+2N−1−1∈[0,2N−1]
En fait les extrêmesE =−(2N−1−1)etE =2N−1 représentent les situations exceptionnelles : +∞,−∞, NaN, etc.
Double précision 64 bits : (1,11,52) E ∈[−1023,1024] (except. −1023
1024)
73 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754)
Soit x ∈R:
x = (−1)s ×M×2E un bit de signe s : s =0,1;
unemantisse M : nombre à virgule binaire M ∈[1,2[ detaille fixée.
Toujours 1 avant la virgule⇒non codé :M=1,00101→f =00101.
unexposant E : entier relatif detaille limitée;
Codé surN bitsen biais:
E ∈[−(2N−1−1),2N−1]7→e=E+2N−1−1∈[0,2N−1]
En fait les extrêmesE =−(2N−1−1)etE =2N−1 représentent les situations exceptionnelles : +∞,−∞, NaN, etc.
Double précision 64 bits : (1,11,52) E ∈[−1023,1024]
(except. −1023 1024)
74 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyFormat tiny sur 5 bits (1,2,2) Nombres positifs représentables :
0 00 00 → 1,00×2−1 = 0,5 0 00 01 → 1,01×2−1 = 0,625 0 00 10 → 1,10×2−1 = 0,75 0 00 11 → 1,11×2−1 = 0,875 0 01 00 → 1,00×20 = 1 0 01 01 → 1,01×20 = 1,25 0 01 10 → 1,10×20 = 1,5 0 01 11 → 1,11×20 = 1,75
0 10 00 → 1,00×21 = 2 0 10 01 → 1,01×21 = 2,5 0 10 10 → 1,10×21 = 3 0 10 11 → 1,11×21 = 3,5 0 11 00 → 1,00×22 = 4 0 11 01 → 1,01×22 = 5 0 11 10 → 1,10×22 = 6 0 11 11 → 1,11×22 = 7
75 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyFormat tiny sur 5 bits (1,2,2) Nombres positifs représentables :
0 00 00 → 1,00×2−1 = 0,5 0 00 01 → 1,01×2−1 = 0,625 0 00 10 → 1,10×2−1 = 0,75 0 00 11 → 1,11×2−1 = 0,875 0 01 00 → 1,00×20 = 1 0 01 01 → 1,01×20 = 1,25 0 01 10 → 1,10×20 = 1,5 0 01 11 → 1,11×20 = 1,75
0 10 00 → 1,00×21 = 2 0 10 01 → 1,01×21 = 2,5 0 10 10 → 1,10×21 = 3 0 10 11 → 1,11×21 = 3,5 0 11 00 → 1,00×22 = 4 0 11 01 → 1,01×22 = 5 0 11 10 → 1,10×22 = 6 0 11 11 → 1,11×22 = 7
76 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyProblème 1 : pas de codage pour 0
Solution : réserver 0 00 00 et 1 00 00 pour ±0 (perte de±0,5).
Problème 2 : grand trou autour de 0
Solution : réservere =0 pour lesnombres dénormalisés
⇒ le hidden bitn’est plus 1 mais 0 : M =0, . . ..
77 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyProblème 1 : pas de codage pour 0
Solution : réserver 0 00 00 et 1 00 00 pour ±0 (perte de±0,5).
Problème 2 : grand trou autour de 0
Solution : réservere =0 pour lesnombres dénormalisés
⇒ le hidden bitn’est plus 1 mais 0 : M =0, . . ..
78 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyProblème 1 : pas de codage pour 0
Solution : réserver 0 00 00 et 1 00 00 pour ±0 (perte de±0,5).
Problème 2 : grand trou autour de 0
Solution : réservere =0 pour lesnombres dénormalisés
⇒ le hidden bitn’est plus 1 mais 0 : M =0, . . ..
79 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyProblème 1 : pas de codage pour 0
Solution : réserver 0 00 00 et 1 00 00 pour ±0 (perte de±0,5).
Problème 2 : grand trou autour de 0
Solution : réservere =0 pour lesnombres dénormalisés
⇒ le hidden bitn’est plus 1 mais 0 : M =0, . . ..
80 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
ExceptionsExceptions
Les infinis mathématiques et les résultats indéfinis (NaNa).
aNot a Number
Problème 3 : pas de représentation des exceptions Solution : réservere =3 pour les exceptions.
Règles de calcul avec les infinis 1
+∞ = +0 , 1
−∞ =−0 , 1
+0 = +∞ , 1
−0 =−∞
81 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
ExceptionsExceptions
Les infinis mathématiques et les résultats indéfinis (NaNa).
aNot a Number
Problème 3 : pas de représentation des exceptions Solution : réservere =3 pour les exceptions.
Règles de calcul avec les infinis 1
+∞ = +0 , 1
−∞ =−0 , 1
+0 = +∞ , 1
−0 =−∞
82 / 108
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
ExceptionsExceptions
Les infinis mathématiques et les résultats indéfinis (NaNa).
aNot a Number
Problème 3 : pas de représentation des exceptions Solution : réservere =3 pour les exceptions.
Règles de calcul avec les infinis 1
+∞ = +0 , 1
−∞ =−0 , 1
+0 = +∞ , 1
−0 =−∞
83 / 108