Représentation des nombres
en machine
Marie Pierrot – Lycée Saint Charles
Écritures des nombres
Pour ecrire des nombres on utilise des symboles.
En base dix que nous connaissons bien, nous utilisons les dix chiffres qui sont les signes :
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 et 9 Par exemple :
5 8 2
Ecritures des nombres
Pour ecrire des nombres on utilise des symboles.
En base dix que nous connaissons bien, nous utilisons les dix chiffres qui sont les signes :
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 et 9
5 8 2
5 * 100
5 * 10
28 * 10 8 * 10
1+ + 2 * 1
2 * 10
0L’addition, à la main...
Méthode d'addition avec un boulier chinois Micmaths : les machines à calculer
Écritures des nombres :
exemple des Babyloniens
Écritures des nombres : exemple des Babyloniens
Avec seulement 2 symboles :
Ecritures des nombres : exemple des Babyloniens
Comment écriraient-ils 582 ?
Ecritures des nombres : exemple des Babyloniens
Comment écriraient-ils 582 ?
Écriture des nombres : exemple des Babyloniens
Comment écriraient-ils 582 ?
9 x 60 + …. 42
Combien de signaux différents ?
1°) En utilisant les modes « allumée » ou « éteinte » de trois lampes…
Combien de messages différents peut-on faire passer ?
Salomé et Régis habitent dans des immeubles se faisant face, ils ont l’habitude de s’envoyer des messages en utilisant l’éclairage de leurs chambres...
2°) S’ils disposaient de quatre lampes au lieu de trois comment évoluerait le nombre de messages à leur
disposition ?
Différentes bases de représentation des nombres
En base 2 on ne dispose que de deux symboles : 0 ou 1.
si
1 1 1 …...représente la quantité 7
10(exprimé en décimal) 0 0 0 …...représente la quantité 0
0 0 1 …….représente la quantité 1
Quels agencements de « 0 » et de « 1 » représenteront les
nombres décimaux 2, 3, 4, 5, 6 … ?
Différentes bases de représentation des nombres
En base 3 on dispose que de trois symboles :
« 0 » « 1 » « 2 »
Écrire dans l’ordre croissant les quantités que l’on peut former
avec deux chiffres
Des additions dans différentes bases :
Effectuer les additions suivantes « à la main » :
En base 10 : En base 5 : En base 2 :
8 9 2 1 7 4 2 0 1 3 1 0 0 1 1 0 + 6 5 9 4 + 2 1 4 3 3 + 0 1 1 1 0 1 ____________ _____________ ______________
= = =
Et l’hexadécimal ?
En hexadécimal on dispose de 16 symboles :
« 0 » « 1 » « 2 » « 3 » « 4 » « 5 » « 6 » « 7 » « 8 » « 9 »
« A » « B » « C » « D » « E » « F » Comment s’écrit 10
10en hexadécimal ? Comment s’écrit 17
10?
Comment s’écrit 123
10?
Exemple :
Représentation Signes utilisés Le même entier
Binaire 0 ; 1 1111011
2Ternaire 0 ; 1 ; 2 11120
3Octal 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 173
8Décimal 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ;
8 ; 9 123
10Hexadecimal 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ;
8 ; 9 ; A ; B ; C ; D ; E ; F 7B
16Comment trouver l’écriture en binaire d’un nombre decimal
123=1 ×102 + 2 ×101+ 3 ×100
123en décimal =1111011en binaire
123=1 ×26+ 1× 25+1 × 24 +1×23+ 0 × 22 +1 × 21+ 1× 20
Comment trouver l’écriture en binaire d’un nombre decimal
123=1 ×102 + 2 ×101+ 3 ×100
123en décimal =1111011en binaire
123=1 ×26+ 1× 25+1 × 24 +1×23+ 0 × 22 +1 × 21+ 1× 20
Comment détermine-t’on
l’écriture en ternaire
de 123 ?
Conversions
Exercice 6 :
Convertir les nombres 861
10et 1024
10en binaire : Exercice 7 :
Convertir les nombres 100000
2et 101110101
2en décimal : Exercice 8 :
En utilisant le même type de méthode qu’à l’exercice n°6 : - Convertir 123
10en ternaire :
- Convertir 123
10en octal : Exercice 9 :
Convertir les nombres 321
4et 177
8en décimal :
Codage de l’information
Généralités
Quelle que soit la nature de l’information traitée par un ordinateur (image, son, texte, vidéo), elle est toujours codée en base 2 (numérotation binaire composée de 0 et de 1).
Il est possible de représenter physiquement cette information binaire par un signal électrique ou magnétique.
●
Les unités d’information
➢ L’octet (byte) : 8 bits
➢ Le mot simple (word) : 16 bits
➢ Le mot double (dword) : 32 bits
Codage de l’information
Encore des généralités
En informatique, outre la base 10, on utilise la base 2 soit le binaire et aussi le système hexadécimal (base 16) pour sa simplicité de traduction en langage machine.
Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexa-
décimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Exemple :
77
10= 01001101
2= 4D
16Codage de l’information
Encore des généralités
En informatique, outre la base 10, on utilise la base 2 soit le binaire et aussi le système hexadécimal (base 16) pour sa simplicité de traduction en langage machine.
Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexa-
décimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Exemple :
77
10= 01001101
2= 4D
16Codage de l’information
Codage des entiers relatifs
Une idée pas totalement satisfaisante :
Partant de la représentation des entiers naturels, il est assez naturel d’envisager de coder un entier relatif en prenant l’entier naturel associé sa valeur absolue et en lui ajoutant un bit de signe avec la convention :
• si l’entier est positif ou nul, le bit de signe est 0 ;
• si l’entier est négatif, le bit de signe est 1 . Sur 4 bits il serait alors possible de coder :
négatifs positifs
1000 0000 1001 0001 1010 0010 1011 0011 1100 0100 1101 0101 1110 0110 1111 0111
Codage des entiers relatifs
Une idée pas totalement satisfaisante :
Partant de la représentation des entiers naturels, il est assez naturel d’envisager de coder un entier relatif en prenant l’entier naturel associé sa valeur absolue et en lui ajoutant un bit de signe avec la convention :
• si l’entier est positif ou nul, le bit de signe est 0 ;
• si l’entier est négatif, le bit de signe est 1 .
Problèmes :
1)
Zéro possède deux représentations :1000 et 0000
2)
Sur 4 bits l’addition de 5 et -3 ne donne pas le bon résultat : 0 1 0 1+ 1 0 1 1 --- (1) 0 0 0 0
Le complément à deux
Partant de ce constat il est possible de représenter les nombres négatifs de façon à ce que la somme d’un nombre entier et de son opposé sur un nombre de bits déterminé donne zéro :
Le nombre négatif est alors représenté par le complément à 2 du nombre entier
Exemple :
7 : 0 1 1 1
+ - 7 : 1 0 0 1
= 0 : = (1) 0 0 0 0
Le complément à deux
Méthode 1
1) On inverse tous les bits 2) On ajoute 1
A vous de jouer :
1 0 0 1 - 1 1 0 1 - 1 0 1 1 0 1 0 1 - 1 0 0 0 - 0 1 1 0 1 0 0 0
Le complément à deux
Méthode 2
1) On part du LSB (bit de poids faible) 2) On remonte jusqu’au premier « 1 » 3) On inverse tous les autres bits A vous de jouer :
1 0 0 1 - 1 1 0 1 - 1 0 1 1 0 1 0 1 - 1 0 0 0 - 0 1 1 0 1 0 0 0
Représentation des entiers relatifs sur 4 bits
Les nombres négatifs commencent tous par un 1 en position du MSB (bit le plus fort)
Représentation des nombres réels
Conversion de décimal en binaire Exemple 77,3
Attention un développement décimal fini en base 10, ne l’est pas forcément en base 2...
Exercice : Transformer 12,9 en base 2 0,3 ∙ 2 = 0,6
0,6 ∙ 2 = 1,2 0,2 ∙ 2 = 0,4 0,4 ∙ 2 = 0,8 0,8 ∙ 2 = 1,6 0,6 ∙ 2 = 1,2 0,2 ∙ 2 = 0,4
77,3 = 1001101,010011001100110011001...[1001]
Représentation des nombres réels
Le 25 février 1991, pendant la Guerre du Golfe, une
batterie américaine de missiles Patriot, à Dharan (Arabie Saoudite), a échoué dans l'interception d'un missile
Scud irakien. Le Scud a frappé un baraquement de l'armée américaine et a tué 28 soldats. La commission d'enquête a conclu à un calcul incorrect du temps de parcours, dû à un problème d'arrondi. Les nombres étaient représentés
en virgule fixe sur 24 bits.
Le temps était compté par l'horloge interne du système en dixième de seconde. Malheureusement, 1/10 n'a pas d'écriture finie dans le système binaire : 1/10 = 0,1 (dans le système décimal) =
0,0001100110011001100110011... (dans le système binaire). L'ordinateur de bord arrondissait 1/10 à 24 chiffres, d'où une petite erreur dans le
décompte du temps pour chaque 1/10 de seconde. Au moment de
l'attaque, la batterie de missile Patriot était allumée depuis environ 100 heures, ce qui a entraîné une accumulation des erreurs d'arrondi de 0,34 s. Pendant ce temps, un missile Scud parcourt environ 500 m, ce qui explique que le Patriot soit passé à côté de sa cible.
La norme IEEE 754
La norme IEEE 754 (Standard for Binary Floating-Point Arithmetic) définit 4 représentations de nombres réels (appelés flottants en informatique) :
●
simple précision (32 bits)
●
double précision (64 bits)
●
simple précision étendue (43 bits et plus)
●
double précision étendue (79 bits en plus, on utilise 80 bits) Les nombres sont décomposés en :
●
signe
●
mantisse (tronquée)
●
exposant (décalé)
N = (-1)*signe × 2
(exposant - 127)× (1,mantisse
2)
Caractéristiques des représentations IEEE 754
Représentation Simple
précision Double
précision
taille (en bits) 32 64
signe 1 1
Exposant 8 11
Mantisse 23 52
Échelle 10+/- 38 10+/- 308
N = (-1)*signe × 2
(exposant - 127)× (1,mantisse
2)
Exemple Traduisons en binaire, en utilisant la norme IEEE 754, le nombre −6,625.
• Codons d'abord la valeur absolue en binaire : 6,62510 = 110,10102
• Nous mettons ce nombre sous la forme : 1, partie fractionnaire 110,1010 = 1,101010·22 (22 décale la virgule de 2 chiffres vers la droite)
• La partie fractionnaire étendue sur 23 bits est donc 101 0100 0000 0000 0000 0000.
• Exposant = 127 + 2 = 12910 = 1000 00012
−6,625 →