précédent|suivant|
table
des matières
réel
ensemble de valeurs
Trois ensembles de valeurs réelles sont définis
en C++ :
type
|
taille en octets
|
intervalle de valeurs
|
float
|
4
|
0,
|
double
|
8
|
0,
|
long double
|
10
|
0,
|
Les intervalles ont évidemment leurs symétriques
en négatif. Le premier intervalle pour chaque type correspond aux
nombres dénormalisés.
notation littérale
La notation des réels en C++ se fait en respectant
la forme suivante :
entier décimal . entier décimal {e
ou E entier signé } {suffixe}
Les parties entre accolades sont facultatives.
notation
|
valeur
|
1.23
|
1,23
|
1.
|
1,0
|
0.1 ou .1
|
0,1
|
2e-5
|
2,0´ 10-5=0,00002
|
3E+10
|
3,0´ 1010
|
.09e34
|
0,09´ 1034
|
suffixes
les suffixe F et L permettent de forcer
la représentation du réel en float ou en long double.
Représentation
Les nombres réels sont représentés
en utilisant la norme IEEE-754.
float :
double :
long double :
La sémantique de la représentation de float
et double est :
-
Si l’exposant vaut 255 ou (2047 pour les doubles) Not
A Number (NAN) si le significande est non nul, + ou – infinity
(INF) si le significande est nul.
-
Si l’exposant est non nul :
avec
ex = exposant – 127 pour les float et ex = 1023 - exposant pour
les double.
-
Si l’exposant est nul,
-
si le significande est nul + ou – 0,
-
si le significande est non nul

avec ex =-126 pour les float et ex = - 1022 pour les
double.
( Dans ce dernier cas on parle de nombres dénormalisés )
pour le type long double elle est :
-
Si l’exposant vaut 32767 Not A Number (NAN)
si le significande est non nul, + ou – infinity (INF) si
le significande est nul.
-
Si l’exposant est non nul :

avec ex = exposant – 16383. Le premier bit du significande
(obligatoirement à 1 ) est le bit avant le .
Si l’exposant est nul : la valeur est + ou – 0.
précédent|suivant|
table
des matières