SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 1/9
Accueil
du site
En notation décimale, les nombres réels s'écrivent sous forme d'une et d'une
séparées par une : par exemple.
Je rappelle la signification des décimales : par exemple dans
Le 5 représente 5 1/10
Le 7 représente 7 1/100
Le 8 représente 8 1/1000
etc
On définit une notation semblable pour tout nombre représentant un .
Exemple : le nombre représente la somme suivante :
Soit, en écriture décimale : 8 + 2+ 0,5 + 0,125 =
Sous une autre forme :
On peut démonter rigoureusement que tout nombre réel positif inférieur à 1
pourrait être écrit de cette manière.
Resterait à décrire le signe, ce qui peut être fait par un bit particulier (bit de signe)
ou par une convention de type "complément à deux".
Beaucoup de ces variantes ont été utilisées dans les calculateurs.
Pour le nombre :
est la partie ,
sa partie .
Il vaut mieux dire ici " " que " "
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 2/9
Car cette dernière dénomination ne se justifie que pour les nombres écrits sous forme décimale.
Notez qu'il n'existe pas de " " mais seulement des " écrits sous forme décimale".
Nous opérons une suite de divisions par 2 et retenons les divers restes.
Ces restes sont repris à l'envers
Voici comment on peut procéder :
Pour plus d'explications cliquer ici :
(écrit ici sous forme décimale)
est égal à écrit en binaire.
Vu la constitution interne des systèmes informatiques,
les données sont représentées en binaire par des "mots" (words ) d'un certain nombre fixé de bits.
8 bits (rare) ou 16 ou 32 , 64, et même 80 bits (10 octets).
Imaginons que ce soir sur 16 bits pour simplifier.
Pour représenter les nombres réels en binaire on pourrait réserver un espace pour la partie entière du nombre
et un autre espace pour la partie fractionnaire.
Par exemple :
C'est cela la représentation en (fixed point ).
Ce mode de représentation n'a que l'avantage de la simplicité !
Il est peu employé. vu ses inconvénients..
Quelques inconvénients...
L'espace réservé à la partie fractionnaire limite le nombre de bits reservés à la partie entière.
Ce qui est gênant pour représenter de très grands nombres,
pour lesquels la partie fractionnaire est généralement peu signifante.
Inversement, la précision sur de très petits nombres est limitée par le manque d'espace dans la partie fractionnaire
alors que pour ces nombres, la partie entière ne contient que des zéros.
Espace mal utilisé dans les deux cas.
La représentation dite "à virgule flottante" - Floating Point -
permet une bien meilleure préservation des chiffres significatifs
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 3/9
autant pour les grands que pour les petits nombres,
comme nous allons le voir ci-après.
s'écrit ou
Observons bien la manière dont on construit ce format
à partir d'une expression quelconque d'un nombre.
Prenons pour exemples :
1. On retient le signe du nombre.
Et on ne s'interesse d'abord qu'à sa valeur absolue.
2. On met le nombre sous forme de deux facteurs.
1. Un nombre de l'intervalle (10 non compris) appelé "
1 pour le premier
pour le second
2. Une puissance de 10 ramenant le produit à sa valeur initiale.
pour le premier.
pour le second.
La puissance de 10 est nommée
( Ici : et respectivement).
3. On rétablit le signe.
pour le premier
pour le second.
4. On remplace, 10 par E (ou e) suivis de la caractéristique.
pour le premier
pour le second.
Puis-je écrire le nombre binaire :
(0,005462646484375déc)
en virgule fixe dans un format binaire de 16 bits
(8 pour la partie entière, 8 pour la partie fractionnaire)
???
Bien sûr que non : des chiffres significatifs déborderaient à droite
au-delà de 8 bits après la virgule..
Imaginons maintenant un format binaire toujours à 16 bits très différent
où les 8 premiers bits à gauche (en bleu souligné) seraient dévolus à la ,
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 4/9
les 8 autres à la (en rouge non souligné).
La mantisse (voir définition ) : (8 bits)
Elle s'obtient ici en faisant glisser la virgule du nombre initial :
de 8 rangs vers la droite
La caractéristique doit donc être de déc ...
Comment écrit-on -8déc en binaire ?
8déc = 00001000bin
Complément à 1 = 11110111
Complément à 28 (on ajoute 1)= 11111000bin
-8déc = 11111000bin
Le nombre s'écrit
dans un format 16 bits (8 caractéristique, 8 mantisse) à virgule flottante
Ce format ne correspond à aucune norme,
il a été arbitrairement choisi pour la simplicité des explications.
Nous verrons plus bas les formats réels à 32, 64,et 50 bits.
Notons que la comporte une et une .
est la partie de la mantisse,
est sa .
Rien n'interdit de représenter le nombre zéro
par un flottant dont la parties entière et fractionnaire sont nulles
ainsi que la caractéristique.
Mais cette forme du zéro pose des problèmes dans les standards de représentation binaire
des nombres dans les mémoires des machines informatiques.
Notamment dans les formats 32 et 64 bits du standard IEEE.
Utilisé pour le type "float" (simple précision)
Utilisé pour le type "double" (double précision)
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 5/9
Les formats à 32 et 64 bits ignorent la partie entière de la mantisse.
Le format à 80 bits mémorise la mantisse avec sa partie entière
Notons que la comporte une et une .
est la partie de la mantisse,
est sa .
La
du nombre obtenu après avoir déplacé la virgule du nombre initial,
de manière à ne laisser subsister qu'un seul chiffre à gauche, différent de zéro.
Pour un nombre écrit en binaire, ce chiffre est invariablement " "
Si le nombre écrit en binaire est : 0000 1010,0110
Après déplacement de la virgule de 3 rangs à gauche : 1,0100110
La partie fractionnaire est :
Le à gauche du zéro .
Il est "implicite" car en binaire ce chiffre est toujours le même : "1" pour tous les nombres.
Sauf, me direz-vous le zéro, cas particulier sur lequel nous reviendrons plus loin.
de combien de rangs
il faut déplacer la virgule se trouvant à gauche de la partie fractionnaire
et dans quel sens (droite ou gauche) après rétablissement du "1" implicite,
pour obtenir le nombre à représenter.
Pour mesurer ce déplacement, tantôt positif tantôt négatif, on aurait pu penser à écrire l'exposant
dans la
Ce n'est pas le cas. Les structures internes des machines numériques
s'accomodent mieux de la convention suivante.
Soit le nombre entier algébrique mesurant le déplacement de la virgule
Soite la valeur de l'exposant, on pose :
valeur de l'exposant considéré comme entier positif
déplacement algébrique de la virgule
ou
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 6/9
(le décalage ou bias) est une constante de valeur :
Traduisons en binaire format flottant simple précision
le nombre : (écrit ici en décimal)
Occupons-nous d''abord de sa valeur absolue 1039,0.
Pour traduire ce nombre (il est entier dans ce premier exemple) en binaire
nous passons par son écriture hexadécimale :
1039 décimal = 40F héxadécimal = 0000 0100 0000 1111binaire
Nous constituons la partie fractionnaire :
0000 0100 0000 1111 = 1, . 210
1,00 0000 1111 =
1,00 0000 1111 0000 0000 0000 0
Rangé autrement :
1,000 0001 1110 0000 0000 0000
Partie fractionnaire sur 23 bits =
000 0001 1110 0000 0000 0000
Nous constituons le décalage IEEE en simple précision 8 bits : 28 - 1 - 1 =
Nous constituons l'exposant : = 10 + décalage =
137 décimal = 1000 1001 binaire
Voici le résultat : bit de signe - exposant - partie fractionnaire
Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
En héxadécimal
Le bit de signe (bit b31) positionné à 1 indique un nombre réel négatif !
L'opposé de -1039,0, soit 1039,0, s'obtient en mettant le bit de signe b31 à 0
+ 1039,0 se code en héxadécimal
Traduisons en binaire format flottant simple précision
le nombre : (écrit ici en décimal)
Occupons-nous d''abord de sa valeur absolue 6,625
Traduisons ce nombre en binaire :
6,625 décimal = 110,1010 binaire
c.f. " Virgule fixe" :
Nous mettons ce nombre sous la forme :
110,1010 = 1, . 22
1,101010 = 1,1010 1000 0000 0000 0000 000
partie fractionnaire sur 23 bits =
Nous rappelons le décalage IEEE en simple précision 8 bits : 28 - 1 - 1 =
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 7/9
Nous constituons l'exposant : = 2+ décalage =
129 décimal = 1000 0001 binaire
Voici le résultat : bit de signe - exposant - partie fractionnaire
Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
En héxadécimal C0 D4 00 00
Le bit de signe (bit b31) positionné à 1 indique un nombre réel négatif !
L'opposé de - 6,625, soit + 6,625, s'obtient en mettant le bit de signe b31 à 0
+ 6,625 se code en héxadécimal
= valeur de l'exposant dans l'implémentation IEEE
= déplacement de la virgule pour rétablir le nombre.
= = Décalage (bias)
En rouge les diverses valeurs numériques décimales pour n = 8 bits
valeur pour laquelle le décalage est .
E 0 1 127 128 254 255
D -127 -126 0 1 127 128
128 valeurs D <= 0 128 valeurs D > 0
Comme nous allons le voir, les colonnes extrêmes grisées de ce taleau
correspondent à des nombres d'exception.
La règle de formation de la partie fractionnaire dans le format IEEE
impose que l'on déplace la virgule à droite du bit à "1" le plus signifiant (de plus grand poids)
dans le nombre binaire initial.
Exemple : 0,001 0000 1110 sera transformé en:1, 0000 1110 x 2-3
Cette méthode est inopérante pour un nombre nul.
C'est la raison pour laquelle on est convenu d'attribuer aux positions extrêmes du tableau précédent
des interprétations particulières.
L'ennui est que si on en reste là, ces valeurs représentent déjà un autre nombre.
En effet, suivant notre règle de formation du format IEEE, on rétablit le "1" implicite
et le tableau précédent vous indique un déplacement de - B.
Ce n'est autre que : 1,000...x 2-B
D'où la règle : ( étant la partie fractionnaire)
(n'oubliez pas le bit de
signe)
C'est la raison pour laquelle nous avons grisé la colonne la plus à gauche du précédent tableau.
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 8/9
Il est indispensable que le format d'enregistrement d'un nombre
puisse mémoriser une impossibilité de calcul ou un résultat infini
survenus lors de son calcul..
On se sert pour cela des nombres correspondant à la colonne la plus à droite du tableau précédent.
C'est-à-dire pour :
(Max de E)
(±) Nommés en informatique.
( , voir ci-dessous)
N'oublions pas que ces représentations binaires
sont directement traitées par des ordinateurs qui n'éprouvent aucune difficulté à déceler
et traiter ces exceptions.
Le format est souvent utilsé pour les programmes
pour enregistrer une mauvaise saisie d'un nombre comme par exemple : 12,45U.
Le format est souvent utilisé pour enregistrer le résultat d'une opération
telle qu'une division par zéro.
E 1 2 127 128 253 254
D -126 -125 0 1 +126 +127
En valeur absolue :
Obtenus pour et
Obtenus pour et
Comme lindique un tableau précédent, ils correspondent à
On doit interpréter ces nombres comme ayant une
et une .
Même le déplacement D est réattribué.
On ne prendra pas la valeur D = - B = - ( 2n-1-1 )
comme on aurait pu l'induire de l'observation du tableau,
mais la valeur par mesure de continuité avec les nombres normalisés.:
avec
Exemple du format IEEE 32 bits
L'exposant a n = 8 bits, et D = -126
28/10/2016 Nombres réels en binaire - APerezMas
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 9/9
---
Valeur absolue maxima d'un nombre dénormalisé :
Val. abs. max. = 0,1× 2 -126 = 2 -127 =
5,8774717541114375398436826861112e-39
---
Valeur absolue minima d'un nombre dénormalisé :
Val. abs. min. = 0,000...001 × 2 -126
La partie fractionnaire ayant 23 bits dans ce format,
0,000...001 = 2 -23
Val. abs. min. = 2 -23 × 2 -126 = 2 -149 =
1,4012984643248170709237295832899e-45
J'arrête là pour aujourd'hui
Numération binaire et hexadécimale
Nombres Binaires naturels
Nombres Binaires relatifs
Représentation des Nombres réels
Représentation de caractères
Représentation d'états physiques
Représentation de grandeurs analogiques
Accueil
du Site

Contenu connexe

Tendances

TP Informatique 1 excel
TP Informatique 1 excelTP Informatique 1 excel
TP Informatique 1 excel
Zhour Add
 
Introduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateursIntroduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateurs
Abdoulaye Dieng
 
Développement Web - Module 1 - Introduction
Développement Web - Module 1 - IntroductionDéveloppement Web - Module 1 - Introduction
Développement Web - Module 1 - Introduction
Mohammed Amine Mostefai
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketing
Romain Bouilloud
 

Tendances (20)

Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Epreuve concours génie informatique
Epreuve concours génie informatiqueEpreuve concours génie informatique
Epreuve concours génie informatique
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Cours Système d'Information
Cours Système d'InformationCours Système d'Information
Cours Système d'Information
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
TP Informatique 1 excel
TP Informatique 1 excelTP Informatique 1 excel
TP Informatique 1 excel
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
powerpoint de la séance1.1 E-commerce and Internet Marketing
powerpoint de la séance1.1 E-commerce and Internet Marketingpowerpoint de la séance1.1 E-commerce and Internet Marketing
powerpoint de la séance1.1 E-commerce and Internet Marketing
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Présentation logiciel excel
Présentation logiciel excelPrésentation logiciel excel
Présentation logiciel excel
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.ppt
 
Introduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateursIntroduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateurs
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Clustering
ClusteringClustering
Clustering
 
Développement Web - Module 1 - Introduction
Développement Web - Module 1 - IntroductionDéveloppement Web - Module 1 - Introduction
Développement Web - Module 1 - Introduction
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketing
 
Chp2 - Solutions ERP
Chp2 - Solutions ERPChp2 - Solutions ERP
Chp2 - Solutions ERP
 

En vedette

Depannage du PC
Depannage du PCDepannage du PC
Depannage du PC
Bruno Delb
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012
David Langlois
 

En vedette (20)

Conversion binaire vers octa
Conversion binaire vers octaConversion binaire vers octa
Conversion binaire vers octa
 
Structure_Des_Ordinateurs
Structure_Des_OrdinateursStructure_Des_Ordinateurs
Structure_Des_Ordinateurs
 
Réussir l'addition dans un système de numération
Réussir l'addition dans un système de numération Réussir l'addition dans un système de numération
Réussir l'addition dans un système de numération
 
02 number systems
02 number systems02 number systems
02 number systems
 
Depannage du PC
Depannage du PCDepannage du PC
Depannage du PC
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Représentation de l'Information Numérique
Représentation de l'Information NumériqueReprésentation de l'Information Numérique
Représentation de l'Information Numérique
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Info1 cours 2- Softwares MI/ST/SM
Info1  cours 2- Softwares  MI/ST/SMInfo1  cours 2- Softwares  MI/ST/SM
Info1 cours 2- Softwares MI/ST/SM
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 
Maintenance conditionnelle.
Maintenance conditionnelle.Maintenance conditionnelle.
Maintenance conditionnelle.
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Développement informatique : Programmation graphique
Développement informatique : Programmation graphiqueDéveloppement informatique : Programmation graphique
Développement informatique : Programmation graphique
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012
 
Maintenance - Exercices
Maintenance - ExercicesMaintenance - Exercices
Maintenance - Exercices
 

Similaire à Nombres réels et négatifs en binaire

Numeration et codage_de_linfo
Numeration et codage_de_linfoNumeration et codage_de_linfo
Numeration et codage_de_linfo
yarsenv47
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
OlyvierNzighou1
 
Le codage Arithmétique.pptx
Le codage Arithmétique.pptxLe codage Arithmétique.pptx
Le codage Arithmétique.pptx
sidimohamedoumar2
 

Similaire à Nombres réels et négatifs en binaire (20)

sujet 1.pptx
sujet 1.pptxsujet 1.pptx
sujet 1.pptx
 
Numeration et codage_de_linfo
Numeration et codage_de_linfoNumeration et codage_de_linfo
Numeration et codage_de_linfo
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
representation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.pptrepresentation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.ppt
 
architecture des calculateurs (2).pdf
architecture des calculateurs (2).pdfarchitecture des calculateurs (2).pdf
architecture des calculateurs (2).pdf
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'information
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
 
Tp1 architecture m.zarboubi
Tp1 architecture m.zarboubiTp1 architecture m.zarboubi
Tp1 architecture m.zarboubi
 
Automat wd info notions-de-mathematiques-appliquees-a-linformatique
Automat wd info notions-de-mathematiques-appliquees-a-linformatiqueAutomat wd info notions-de-mathematiques-appliquees-a-linformatique
Automat wd info notions-de-mathematiques-appliquees-a-linformatique
 
E.N.pdf
E.N.pdfE.N.pdf
E.N.pdf
 
Codage
CodageCodage
Codage
 
Assembleur
AssembleurAssembleur
Assembleur
 
Ch1 questions
Ch1 questionsCh1 questions
Ch1 questions
 
Le codage Arithmétique.pptx
Le codage Arithmétique.pptxLe codage Arithmétique.pptx
Le codage Arithmétique.pptx
 
Info smpc2 part1
Info smpc2 part1Info smpc2 part1
Info smpc2 part1
 
cours-algorithmique1.ppt
cours-algorithmique1.pptcours-algorithmique1.ppt
cours-algorithmique1.ppt
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
ch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.pptch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.ppt
 

Nombres réels et négatifs en binaire

  • 1. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 1/9 Accueil du site En notation décimale, les nombres réels s'écrivent sous forme d'une et d'une séparées par une : par exemple. Je rappelle la signification des décimales : par exemple dans Le 5 représente 5 1/10 Le 7 représente 7 1/100 Le 8 représente 8 1/1000 etc On définit une notation semblable pour tout nombre représentant un . Exemple : le nombre représente la somme suivante : Soit, en écriture décimale : 8 + 2+ 0,5 + 0,125 = Sous une autre forme : On peut démonter rigoureusement que tout nombre réel positif inférieur à 1 pourrait être écrit de cette manière. Resterait à décrire le signe, ce qui peut être fait par un bit particulier (bit de signe) ou par une convention de type "complément à deux". Beaucoup de ces variantes ont été utilisées dans les calculateurs. Pour le nombre : est la partie , sa partie . Il vaut mieux dire ici " " que " "
  • 2. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 2/9 Car cette dernière dénomination ne se justifie que pour les nombres écrits sous forme décimale. Notez qu'il n'existe pas de " " mais seulement des " écrits sous forme décimale". Nous opérons une suite de divisions par 2 et retenons les divers restes. Ces restes sont repris à l'envers Voici comment on peut procéder : Pour plus d'explications cliquer ici : (écrit ici sous forme décimale) est égal à écrit en binaire. Vu la constitution interne des systèmes informatiques, les données sont représentées en binaire par des "mots" (words ) d'un certain nombre fixé de bits. 8 bits (rare) ou 16 ou 32 , 64, et même 80 bits (10 octets). Imaginons que ce soir sur 16 bits pour simplifier. Pour représenter les nombres réels en binaire on pourrait réserver un espace pour la partie entière du nombre et un autre espace pour la partie fractionnaire. Par exemple : C'est cela la représentation en (fixed point ). Ce mode de représentation n'a que l'avantage de la simplicité ! Il est peu employé. vu ses inconvénients.. Quelques inconvénients... L'espace réservé à la partie fractionnaire limite le nombre de bits reservés à la partie entière. Ce qui est gênant pour représenter de très grands nombres, pour lesquels la partie fractionnaire est généralement peu signifante. Inversement, la précision sur de très petits nombres est limitée par le manque d'espace dans la partie fractionnaire alors que pour ces nombres, la partie entière ne contient que des zéros. Espace mal utilisé dans les deux cas. La représentation dite "à virgule flottante" - Floating Point - permet une bien meilleure préservation des chiffres significatifs
  • 3. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 3/9 autant pour les grands que pour les petits nombres, comme nous allons le voir ci-après. s'écrit ou Observons bien la manière dont on construit ce format à partir d'une expression quelconque d'un nombre. Prenons pour exemples : 1. On retient le signe du nombre. Et on ne s'interesse d'abord qu'à sa valeur absolue. 2. On met le nombre sous forme de deux facteurs. 1. Un nombre de l'intervalle (10 non compris) appelé " 1 pour le premier pour le second 2. Une puissance de 10 ramenant le produit à sa valeur initiale. pour le premier. pour le second. La puissance de 10 est nommée ( Ici : et respectivement). 3. On rétablit le signe. pour le premier pour le second. 4. On remplace, 10 par E (ou e) suivis de la caractéristique. pour le premier pour le second. Puis-je écrire le nombre binaire : (0,005462646484375déc) en virgule fixe dans un format binaire de 16 bits (8 pour la partie entière, 8 pour la partie fractionnaire) ??? Bien sûr que non : des chiffres significatifs déborderaient à droite au-delà de 8 bits après la virgule.. Imaginons maintenant un format binaire toujours à 16 bits très différent où les 8 premiers bits à gauche (en bleu souligné) seraient dévolus à la ,
  • 4. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 4/9 les 8 autres à la (en rouge non souligné). La mantisse (voir définition ) : (8 bits) Elle s'obtient ici en faisant glisser la virgule du nombre initial : de 8 rangs vers la droite La caractéristique doit donc être de déc ... Comment écrit-on -8déc en binaire ? 8déc = 00001000bin Complément à 1 = 11110111 Complément à 28 (on ajoute 1)= 11111000bin -8déc = 11111000bin Le nombre s'écrit dans un format 16 bits (8 caractéristique, 8 mantisse) à virgule flottante Ce format ne correspond à aucune norme, il a été arbitrairement choisi pour la simplicité des explications. Nous verrons plus bas les formats réels à 32, 64,et 50 bits. Notons que la comporte une et une . est la partie de la mantisse, est sa . Rien n'interdit de représenter le nombre zéro par un flottant dont la parties entière et fractionnaire sont nulles ainsi que la caractéristique. Mais cette forme du zéro pose des problèmes dans les standards de représentation binaire des nombres dans les mémoires des machines informatiques. Notamment dans les formats 32 et 64 bits du standard IEEE. Utilisé pour le type "float" (simple précision) Utilisé pour le type "double" (double précision)
  • 5. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 5/9 Les formats à 32 et 64 bits ignorent la partie entière de la mantisse. Le format à 80 bits mémorise la mantisse avec sa partie entière Notons que la comporte une et une . est la partie de la mantisse, est sa . La du nombre obtenu après avoir déplacé la virgule du nombre initial, de manière à ne laisser subsister qu'un seul chiffre à gauche, différent de zéro. Pour un nombre écrit en binaire, ce chiffre est invariablement " " Si le nombre écrit en binaire est : 0000 1010,0110 Après déplacement de la virgule de 3 rangs à gauche : 1,0100110 La partie fractionnaire est : Le à gauche du zéro . Il est "implicite" car en binaire ce chiffre est toujours le même : "1" pour tous les nombres. Sauf, me direz-vous le zéro, cas particulier sur lequel nous reviendrons plus loin. de combien de rangs il faut déplacer la virgule se trouvant à gauche de la partie fractionnaire et dans quel sens (droite ou gauche) après rétablissement du "1" implicite, pour obtenir le nombre à représenter. Pour mesurer ce déplacement, tantôt positif tantôt négatif, on aurait pu penser à écrire l'exposant dans la Ce n'est pas le cas. Les structures internes des machines numériques s'accomodent mieux de la convention suivante. Soit le nombre entier algébrique mesurant le déplacement de la virgule Soite la valeur de l'exposant, on pose : valeur de l'exposant considéré comme entier positif déplacement algébrique de la virgule ou
  • 6. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 6/9 (le décalage ou bias) est une constante de valeur : Traduisons en binaire format flottant simple précision le nombre : (écrit ici en décimal) Occupons-nous d''abord de sa valeur absolue 1039,0. Pour traduire ce nombre (il est entier dans ce premier exemple) en binaire nous passons par son écriture hexadécimale : 1039 décimal = 40F héxadécimal = 0000 0100 0000 1111binaire Nous constituons la partie fractionnaire : 0000 0100 0000 1111 = 1, . 210 1,00 0000 1111 = 1,00 0000 1111 0000 0000 0000 0 Rangé autrement : 1,000 0001 1110 0000 0000 0000 Partie fractionnaire sur 23 bits = 000 0001 1110 0000 0000 0000 Nous constituons le décalage IEEE en simple précision 8 bits : 28 - 1 - 1 = Nous constituons l'exposant : = 10 + décalage = 137 décimal = 1000 1001 binaire Voici le résultat : bit de signe - exposant - partie fractionnaire Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 En héxadécimal Le bit de signe (bit b31) positionné à 1 indique un nombre réel négatif ! L'opposé de -1039,0, soit 1039,0, s'obtient en mettant le bit de signe b31 à 0 + 1039,0 se code en héxadécimal Traduisons en binaire format flottant simple précision le nombre : (écrit ici en décimal) Occupons-nous d''abord de sa valeur absolue 6,625 Traduisons ce nombre en binaire : 6,625 décimal = 110,1010 binaire c.f. " Virgule fixe" : Nous mettons ce nombre sous la forme : 110,1010 = 1, . 22 1,101010 = 1,1010 1000 0000 0000 0000 000 partie fractionnaire sur 23 bits = Nous rappelons le décalage IEEE en simple précision 8 bits : 28 - 1 - 1 =
  • 7. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 7/9 Nous constituons l'exposant : = 2+ décalage = 129 décimal = 1000 0001 binaire Voici le résultat : bit de signe - exposant - partie fractionnaire Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 En héxadécimal C0 D4 00 00 Le bit de signe (bit b31) positionné à 1 indique un nombre réel négatif ! L'opposé de - 6,625, soit + 6,625, s'obtient en mettant le bit de signe b31 à 0 + 6,625 se code en héxadécimal = valeur de l'exposant dans l'implémentation IEEE = déplacement de la virgule pour rétablir le nombre. = = Décalage (bias) En rouge les diverses valeurs numériques décimales pour n = 8 bits valeur pour laquelle le décalage est . E 0 1 127 128 254 255 D -127 -126 0 1 127 128 128 valeurs D <= 0 128 valeurs D > 0 Comme nous allons le voir, les colonnes extrêmes grisées de ce taleau correspondent à des nombres d'exception. La règle de formation de la partie fractionnaire dans le format IEEE impose que l'on déplace la virgule à droite du bit à "1" le plus signifiant (de plus grand poids) dans le nombre binaire initial. Exemple : 0,001 0000 1110 sera transformé en:1, 0000 1110 x 2-3 Cette méthode est inopérante pour un nombre nul. C'est la raison pour laquelle on est convenu d'attribuer aux positions extrêmes du tableau précédent des interprétations particulières. L'ennui est que si on en reste là, ces valeurs représentent déjà un autre nombre. En effet, suivant notre règle de formation du format IEEE, on rétablit le "1" implicite et le tableau précédent vous indique un déplacement de - B. Ce n'est autre que : 1,000...x 2-B D'où la règle : ( étant la partie fractionnaire) (n'oubliez pas le bit de signe) C'est la raison pour laquelle nous avons grisé la colonne la plus à gauche du précédent tableau.
  • 8. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 8/9 Il est indispensable que le format d'enregistrement d'un nombre puisse mémoriser une impossibilité de calcul ou un résultat infini survenus lors de son calcul.. On se sert pour cela des nombres correspondant à la colonne la plus à droite du tableau précédent. C'est-à-dire pour : (Max de E) (±) Nommés en informatique. ( , voir ci-dessous) N'oublions pas que ces représentations binaires sont directement traitées par des ordinateurs qui n'éprouvent aucune difficulté à déceler et traiter ces exceptions. Le format est souvent utilsé pour les programmes pour enregistrer une mauvaise saisie d'un nombre comme par exemple : 12,45U. Le format est souvent utilisé pour enregistrer le résultat d'une opération telle qu'une division par zéro. E 1 2 127 128 253 254 D -126 -125 0 1 +126 +127 En valeur absolue : Obtenus pour et Obtenus pour et Comme lindique un tableau précédent, ils correspondent à On doit interpréter ces nombres comme ayant une et une . Même le déplacement D est réattribué. On ne prendra pas la valeur D = - B = - ( 2n-1-1 ) comme on aurait pu l'induire de l'observation du tableau, mais la valeur par mesure de continuité avec les nombres normalisés.: avec Exemple du format IEEE 32 bits L'exposant a n = 8 bits, et D = -126
  • 9. 28/10/2016 Nombres réels en binaire - APerezMas http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm 9/9 --- Valeur absolue maxima d'un nombre dénormalisé : Val. abs. max. = 0,1× 2 -126 = 2 -127 = 5,8774717541114375398436826861112e-39 --- Valeur absolue minima d'un nombre dénormalisé : Val. abs. min. = 0,000...001 × 2 -126 La partie fractionnaire ayant 23 bits dans ce format, 0,000...001 = 2 -23 Val. abs. min. = 2 -23 × 2 -126 = 2 -149 = 1,4012984643248170709237295832899e-45 J'arrête là pour aujourd'hui Numération binaire et hexadécimale Nombres Binaires naturels Nombres Binaires relatifs Représentation des Nombres réels Représentation de caractères Représentation d'états physiques Représentation de grandeurs analogiques Accueil du Site