std::logb
De cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
</div> </div>
Déclaré dans l'en-tête <cmath>
|
||
float logb( float arg ); |
(depuis C++11) | |
double logb( double arg ); |
(depuis C++11) | |
long double logb( long double arg ); |
(depuis C++11) | |
double logb( Integral arg ); |
(depuis C++11) | |
Extrait la valeur de l'exposant de la
r|arg| signé en tant que valeur à virgule flottante, pour les non-nul arg, où
arg
argument en virgule flottante, et retourne une valeur à virgule flottante. Formellement, le résultat est la partie intégrante de logr|arg| signé en tant que valeur à virgule flottante, pour les non-nul arg, où
r
est std::numeic_limits<T>::radix et T
est le type à virgule flottante de arg
. Si arg
est inférieure à la normale, elle est traitée comme si elle était normalisée .Original:
Extracts the value of the exponent from the floating-point argument
r|arg| as a signed floating-point value, for non-zero arg, where
arg
, and returns it as a floating-point value. Formally, the result is the integral part of logr|arg| as a signed floating-point value, for non-zero arg, where
r
is std::numeic_limits<T>::radix and T
is the floating-point type of arg
. If arg
is subnormal, it is treated as though it was normalized.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Sommaire |
[modifier] Paramètres
arg | - | valeur du point flottant
Original: floating point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[modifier] Retourne la valeur
L'exposant virgule flottante .
Original:
The floating-point exponent.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Erreur de domaine ou une plage peut se produire si
arg
est nul .Original:
Domain or range error may occur if
arg
is zero.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifier] Notes
La valeur de l'exposant retourné par std::logb est toujours inférieur de 1 l'exposant retuned par std::frexp en raison des exigences de normalisation différents: pour le
| est comprise entre 1 et
| se situe entre 0.5 et 1 .
e
exposant retourné par std::logb, |arg*r-e| est comprise entre 1 et
r
(typiquement entre 1 et 2), mais pour le exposant e
retourné par std::frexp, |arg*2-e| se situe entre 0.5 et 1 .
Original:
The value of the exponent returned by std::logb is always 1 less than the exponent retuned by std::frexp because of the different normalization requirements: for the exponent
| is between 1 and
| is between 0.5 and 1.
e
returned by std::logb, |arg*r-e| is between 1 and
r
(typically between 1 and 2), but for the exponent e
returned by std::frexp, |arg*2-e| is between 0.5 and 1.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifier] Exemple
Compare les différentes fonctions de décomposition en virgule flottante
Original:
Compares different floating-point decomposition functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <cmath> #include <limits> int main() { double f = 123.45; std::cout << "Given the number " << f << " or " << std::hexfloat << f << std::defaultfloat << " in hex,\n"; double f3; double f2 = std::modf(f, &f3); std::cout << "modf() makes " << f3 << " + " << f2 << '\n'; int i; f2 = std::frexp(f, &i); std::cout << "frexp() makes " << f2 << " * 2^" << i << '\n'; i = std::ilogb(f); std::cout << "logb()/ilogb() make " << f/std::scalbn(1.0, i) << " * " << std::numeric_limits<double>::radix << "^" << std::ilogb(f) << '\n'; }
Résultat :
Given the number 123.45 or 0x1.edccccccccccdp+6 in hex, modf() makes 123 + 0.45 frexp() makes 0.964453 * 2^7 logb()/ilogb() make 1.92891 * 2^6
[modifier] Voir aussi
se décompose en un certain nombre mantisse et d'une puissance de 2 Original: decomposes a number into significand and a power of 2 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction) | |
(C++11) |
extrait exposant du nombre Original: extracts exponent of the number The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction) |
(C++11) (C++11) |
multiplie par un nombre FLT_RADIX élevé à une puissance Original: multiplies a number by FLT_RADIX raised to a power The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction) |