représentation de nombres entiers et à virgule
DESCRIPTION
Représentation de nombres entiers et à virgule. A05 T.Camier. I. Bienvenu dans un monde binaire. Carte perforée d’un métier à tisser. 1. Les cartes perforées. http:// www.ina.fr/video/CAF97059686 http :// www.youtube.com/watch?v=MDQHE0W-qHs. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/1.jpg)
REPRÉSENTATION DE NOMBRES ENTIERS ET
À VIRGULEA05
T.CAMIER
![Page 2: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/2.jpg)
2
I. BIENVENU DANS UN MONDE BINAIRE
![Page 3: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/3.jpg)
3
1. LES CARTES PERFORÉES• http://www.ina.fr/video/CAF97059686
• http://www.youtube.com/watch?v=MDQHE0W-qHs
Carte perforée d’un métier à tisser
BILAN : chaque case ne peut avoir que 2 états : non coché ou coché (TROU).
ATTENTION : la technique est binaire (Plein ou Trou), mais l’info n’est pas encore stockée de façon binaire mais de façon décimale.
Exemple : 13;666;69
![Page 4: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/4.jpg)
4
QUE DE PLACE PERDUE!• Un mélange binaire-décimal peu judicieux:• Exemple on souhaite stocker un âge humain. Or il faut réserver 3 chiffres
dans cette carte (3 colonnes), soit 3*10=30 infos binaires réservées, 3 étant obligatoirement utilisées, les 27 autres sont de la place perdue !
• Un stockage 100% binaire sur 7 bits (dont on utilise 1 à 7 bits) permet de stocker des âges jusque 127 ans.• Si on souhaite plus de marge, avec un bit de plus, on peut stocker des âges
jusque 255 ans !
• Ce problème sera revu avec la notion de compression de données
![Page 5: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/5.jpg)
5
BILAN
• Mécaniquement, il est aisé de stocker une info binaire.
• Et électriquement ?
![Page 6: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/6.jpg)
6
2. LE TRANSISTOR
Au final, on a une info binaire pour Vce : Rien (0) ou quelque chose (1)
Il existe des transistors dits à grille flottante : cette grille a pour particularité physique de conserver une charge d'électrons durant de très longues périodes (les fabricants ont estimé cette durée à cent ans !)http://www.01net.com/editorial/294823/comment-ca-marche-la-memoire-flash/
![Page 7: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/7.jpg)
7
3. LES DISQUES OPTIQUES
Le retour de la carte perforée à lecture optique !
La question au prof de physique : pourquoi être passé du laser rouge au blu-ray ? Et ensuite, que faire d’encore mieux ?
![Page 8: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/8.jpg)
8
4. BILAN
Quantité élémentaire d’information : le bit (BInary digiT). Deux valeurs : 0 ou 1
Tout peux se ramener à un codage binaire.
Selon le contexte, peuvent correspondre à :• nombres 0 ou 1 (numérique),• faux ou vrai (logique),• ouvert ou fermé (interrupteur)• nord ou sud (magnétique),• noir ou blanc (optique),• absence ou présence de trou (carte perforée), etc.
![Page 9: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/9.jpg)
9
5. EXERCICES• On imagine un ordinateur dont la mémoire est constituée de quatre circuits
mémoire un bit. Quel est le nombre d’états possibles de la mémoire de cet ordinateur ?
• Même question pour un ordinateur dont la mémoire est constituée de huit circuits mémoire un bit. (un ordinateur 8 bits)
• On veut représenter chacune des sept couleurs de l’arc-en-ciel par un mot, les sept mots devant être distincts et de même longueur. Quelle est la longueur minimale de ces mots ?
![Page 10: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/10.jpg)
10
II. PASSER DU MONDE DÉCIMAL AU MONDE BINAIRE
![Page 11: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/11.jpg)
11
1) LA NUMÉRATION BINAIRE• Voir DM A04 III.1 et III.4.e
• Il faut connaître le tableau suivant (pour un octet, c’est-à-dire 8 bits)
• Exercice : convertir en décimal les octets (donnés sous forme binaire) suivants• 10101010
• 01010101
• Quelle valeur décimale maximale peut-on stocker sur 1 octet ?
Position 7 6 5 4 3 2 1 0
Poids en base 2 27 26 25 24 23 22 21 20
Equivalence en base 10
![Page 12: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/12.jpg)
12
2) CONVERSION DÉCIMAL VERS BINAIRE• Voir DM A04 III.4.e• Exercice
• En utilisant les 2 techniques, coder votre numéro de téléphone sur 5 octets (1 octet par doublette, par exemple « 06 »)
• Était-il indispensable d’utiliser un octet par doublette ?
![Page 13: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/13.jpg)
13
3) CONVERSION BINAIRE VERS DÉCIMAL
• Voir DM A04 III.1. et III.4.a.
• Exemple : 11110010000 est une date fondamentale pour l’informatique (Voir exposé Turing)
Quelle est cette date en décimal ?
![Page 14: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/14.jpg)
14
III. CE QUE L’ON PEUT FAIRE AVEC DU BINAIRE
![Page 15: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/15.jpg)
15
1) ON PEUT FAIRE… DES CALCULS• Faire l’addition binaire de 0111 0110 et 1010 1101
0111 0110
+ 1010 1101
------------------
=
Convertir en décimal chacun des membres et votre résultat. Vérifier que la somme est correcte.
![Page 16: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/16.jpg)
16
![Page 17: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/17.jpg)
17
2) ON PEUT FAIRE… DE LA LOGIQUE
• Sur une alarme, j’ai :• Un bouton off/on (0 ou 1)
• Un détecteur de présence (0 quand personne et 1 quand détection)
• Une sirène. Quand elle reçoit 0, elle ne fait rien. Quand elle reçoit 1, elle hurle.
• Identifier les entrées et sorties vu du point de vue de ma centrale d’alarme• Quelle logique doit adopter mon alarme pour fonctionner correctement ?
![Page 18: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/18.jpg)
18
LES TABLES DE VÉRITÉ
a b a.b a b a+b
a
ET OU
NON
![Page 19: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/19.jpg)
19
BILAN
![Page 20: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/20.jpg)
20
RÉALISATION CONCRÈTE
• exemple de circuit intégré 7400 contenant 4 portes NON-ET (NAND). Les deux autres broches servent à l'alimentation 0V / 5V.
![Page 21: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/21.jpg)
21
IV. COMMENT AFFICHER UN BINAIRE DE FAÇON PRATIQUE ?
![Page 22: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/22.jpg)
22
1) LA BASE 16 ? UNE SOLUTION
• Pourquoi ? Parce que 161 = 24. Donc on va réussir à afficher en base 16 un quarté (c’est-à-dire 4 octets).
• On appelle la base 16, la base hexadécimale
![Page 23: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/23.jpg)
23
Valeur décimale Valeur binaire Code hexadécimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
1415
![Page 24: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/24.jpg)
24
Valeur décimale Valeur binaire Code hexadécimal
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 111015 1111
![Page 25: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/25.jpg)
25
Valeur décimale Valeur binaire Code hexadécimal
0 0000 1° caractère ou chiffre
1 0001 2nd caractère ou chiffre
2 0010 3° caractère ou chiffre
3 0011 …
4 0100 …
5 0101 …
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 111015 1111
![Page 26: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/26.jpg)
26
Valeur décimale Valeur binaire Code hexadécimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010
11 1011
12 1100
13 1101
14 111015 1111
![Page 27: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/27.jpg)
27
Valeur décimale Valeur binaire Code hexadécimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 Un autre « chiffre »(n°11)
11 1011 Un autre « chiffre » (n°12)
12 1100 …
13 1101
14 111015 1111
![Page 28: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/28.jpg)
28
Valeur décimale Valeur binaire Code hexadécimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E15 1111 F
![Page 29: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/29.jpg)
29
2) CONVERSION HEXADÉCIMAL VERS DÉCIMAL• Voir DM A04 III.2 et III.4.b
• Il faut connaître le tableau suivant
Position 3 2 1 0
Poids en base 16 163 162 161 160
Equivalence en base 10
![Page 30: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/30.jpg)
30
EXEMPLES
• Exercices : Convertir en décimal• 23base 16
• A2base 16
• DEbase 16
• Quelle valeur décimale maximale peut-on donner en utilisant 2 caractères héxadécimaux ?
![Page 31: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/31.jpg)
31
3) CONVERSION HEXADÉCIMAL VERS BINAIRE• Voir DM A04 III.4.c• Chaque « chiffre » du nombre hexadécimal est converti en quarté (4 bits)• Voir tableau dans les pages précédentes• Exemples :
• 5base 16 = binaire
• Bbase 16 = binaire
• 5Bbase 16 = binaire
• ACbase 16 = binaire
![Page 32: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/32.jpg)
32
4) CONVERSION BINAIRE VERS HEXADÉCIMAL• Voir DM A04 III.4.d• Il faut découper le binaire en quarté. Ensuite, il faut convertir chaque quarté
en un « chiffre » héxédécimal.• Voir tableau dans les pages précédentes• Exemples :
• 0110binaire = base 16
• 1010binaire = base 16
• 0110 1010binaire = base 16
• 1111 1111binaire = base 16
![Page 33: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/33.jpg)
33
5) APPLICATION CODAGE DES COULEURS DANS UNE PAGE WEB• La synthèse additive des couleurs
http://www.ostralo.net/3_animations/swf/synthese_couleurs.swf• A savoir (physique 1S)
• A partir de 3 couleurs (RGB) on peut synthétiser n’importe quelle couleur
• Chaque source primaire de couleur est utilisée de 0% à 100%
• 0% sera codé 0000 0000binaire cad 00hexadécimal
• 100% sera codé 1111 1111binaire cad FFhexadécimal
![Page 34: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/34.jpg)
34
• Pour coder une couleur dans une page web, on utilise le codage hexadécimal du type : #rrggbb
• (le # précise que la donnée qui suit est en hexadécimal)• Exemples :
• je veux générer une couleur 75% rouge et 20% bleu (voir rendu sur animation). Quel code mettre dans la page web ?
• je veux générer une couleur 25% rouge et 100% vert (voir rendu sur animation). Quel code mettre dans la page web ?
![Page 35: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/35.jpg)
35
V. LA REPRÉSENTATION DES ENTIERS RELATIFS
![Page 36: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/36.jpg)
36
1) QUELLE MÉTHODE METTRE EN PLACE ?• On a vu précédemment comment représenter des entiers naturel en binaire.
• Les capacités :• sur 8 bits, combien peut-on représenter de nombre différents ?
• Idem sur 16 bits
• Idem sur 32 bits
• Une idée pour les entiers relatifs ? (réflexion sur 16 bits)
![Page 37: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/37.jpg)
37
• Idée : dédier un bit au signe• Positif : 0
• Négatif : 1
• Combien de valeur de valeur peut-on représenter ?• Mini : -111 1111 1111 1111, c’est-à-dire en décimal ?
• Maxi : +111 1111 1111 1111, c’est-à-dire en décimal ?
• Quel serait l’inconvénient majeur (et rédhibitoire) de ce système.
![Page 38: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/38.jpg)
38
2) LA MÉTHODE RETENUE : NOTATION EN COMPLÉMENT À DEUX
• De 0 à 32 767, pas de problème, on stocke les entiers naturels
• De 32 768 à 65 535, on va stocker les nombres négatifs
![Page 39: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/39.jpg)
39
• Donner les représentations binaires sur 8 bits de :• 0
• 128
• - 128
• 127
• - 127
• Mêmes questions, mais sur 16 bits• Pour d’autres, exemples, voir Spé ISN en TS de Dowek au CDI
![Page 40: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/40.jpg)
40
VI. LA REPRÉSENTATION DES NOMBRES À VIRGULE
![Page 41: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/41.jpg)
41
• Dowek p.108
s : signe
m : mantisse
n : exposant
![Page 42: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/42.jpg)
42
1100010001101001001111000011100000000000000000000000000000000000
• Quelle valeur en décimal ?
![Page 43: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/43.jpg)
43
1100010001101001001111000011100000000000000000000000000000000000
• Bit de signe = 1, donc nombre négatif
![Page 44: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/44.jpg)
44
1100010001101001001111000011100000000000000000000000000000000000
• Exposant : 100 0100 0110• On est sur n = … bits• Soit en décimal : p = ??• Donc au final, on peut trouver l’entier relatif : relatif = p - 1023• Ici, exposant =
![Page 45: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/45.jpg)
45
1100010001101001001111000011100000000000000000000000000000000000
• Mantisse :
1001001111000011100000000000000000000000000000000000
• m = 1 + + 0 + 0 + + 0 + 0 + + + + + 0 + 0 + 0 + 0 + + +
• m = (217 + 216 + 0 + 0 + 213 + 0 + 0 + 210 + 29 + 28 + 27 + 0 + 0 + 0 + 0 + 22 + 21 +
1 ) / 217
• m = 206 727 / 131 072 (qui est bien compris entre 1 et strictement 2)
• Remarque : 1 est un bit implicite
![Page 46: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/46.jpg)
46
BILAN• On a donc stocké :
Qui permet de retenir la valeur - 3,72406 . 10 21 !
Bienvenue dans le monde la norme IEEE 754 de 1985
![Page 47: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/47.jpg)
47
• Quand on veut stocker une valeur, par exemple votre note en ISN au bac, il faut réserver un nombre d’octet donné et spécifier au logiciel le type
VII. CONSÉQUENCE SUR LES DÉCLARATIONS DE VARIABLES
![Page 48: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/48.jpg)
48
EXEMPLE : VARIABLE SUR UN SERVEUR SQL (POUR WEB)• Source : http://docs.postgresql.fr/7.4/datatype.html#DATATYPE-NUMERIC
![Page 49: Représentation de nombres entiers et à virgule](https://reader035.vdocuments.fr/reader035/viewer/2022081422/56816647550346895dd9bdec/html5/thumbnails/49.jpg)
49
• Il faut bien entendu préciser le type : un « integer » et un « real » réservent tous deux 4 octets.
• Si on voit 4 octets, on ne peut pas savoir quel type de données il y a.
• Bref, il faut se méfier du typage• Exemple : cahier texte qui utilise un variable n pour chaque devoir donné.
• Si n est un smallint, dès que quelqu’un donnera le devoir numéro 32 768, le logiciel plantera !
• Solution : Prendre un integer (suffisant ? : à réfléchir) ou un bigserial (mais qui occupera 8 octet sur le serveur… et qui coûtera donc plus !)
• Exemple de bug le 28 mars 2012
http://www.etab.ac-caen.fr/bsauveur/cahier_de_texte/correctifs.html