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. |
Defined in header <cmath>
|
||
float logb( float arg ); |
(desde C++11) | |
double logb( double arg ); |
(desde C++11) | |
long double logb( long double arg ); |
(desde C++11) | |
double logb( Integral arg ); |
(desde C++11) | |
Extrae el valor del exponente de la
r|arg| como firmado valor de punto flotante, para no-cero arg, donde
arg
argumento de punto flotante, y la devuelve como un valor de punto flotante. Formalmente, el resultado es la parte integral de logr|arg| como firmado valor de punto flotante, para no-cero arg, donde
r
es std::numeic_limits<T>::radix y T
es el tipo de punto flotante de arg
. Si arg
es subnormal, es tratado como si se normalizó .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.
Contenido |
[editar] Parámetros
arg | - | flotando valor en puntos
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. |
[editar] Valor de retorno
El exponente de punto flotante .
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.
Error de dominio o rango puede ocurrir si
arg
es cero .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.
[editar] Notas
El valor del exponente devuelto por std::logb siempre es 1 menos que el exponente reajustada por std::frexp debido a los requisitos de normalización diferentes: para la
| es entre 1 y
| es entre 0.5 y 1 .
e
exponente devuelto por std::logb, |arg*r-e| es entre 1 y
r
(típicamente entre 1 y 2), pero para la exponente e
devuelto por std::frexp, |arg*2-e| es entre 0.5 y 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.
[editar] Ejemplo
Compara las diferentes funciones de punto flotante de descomposición
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'; }
Output:
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
[editar] Ver también
se descompone un número en mantisa y una potencia 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. (función) | |
(C++11) |
extrae exponente de la serie 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. (función) |
(C++11) (C++11) |
multiplica un número por FLT_RADIX elevado a una potencia 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. (función) |