Espacios de nombres
Variantes
Acciones

std::log2, std::log2f, std::log2l

De cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Funciones matemáticas comunes
Funciones
Operaciones básicas
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones exponenciales
(C++11)
(C++11)
(C++11)
log2
(C++11)
Funciones de potencias
(C++11)
(C++11)
Funciones trigonométricas e hiperbólicas
(C++11)
(C++11)
(C++11)
Funciones de error y gamma
(C++11)
(C++11)
(C++11)
(C++11)
Operaciones de punto flotante del entero más cercano
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones de manipulación de punto flotante
(C++11)(C++11)
(C++11)
(C++11)
Clasificación/comparación
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Constantes de macro
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
float       log2 (float arg );
float       log2f(float arg );
(1) (desde C++11)
double      log2 (double arg );
(2) (desde C++11)
longdouble log2 (longdouble arg );
longdouble log2l(longdouble arg );
(3) (desde C++11)
double      log2 ( TipoEntero arg );
(4) (desde C++11)
1-3) Calcula el logaritmo binario (base 2) de arg.
4) Un conjunto de sobrecargas o una plantilla de función que acepta un argumento de cualquier tipo entero. Equivalente a (2) (el argumento se convierte a double).

Contenido

[editar]Parámetros

arg - Valor de un tipo de punto flotante o un tipo entero.

[editar]Valor de retorno

Si no se producen errores, se devuelve el logaritmo binario (base 2) de arg (log
2
(arg)
o lb(arg)).

Si se produce un error de dominio, se devuelve un valor definido por la implementación (NaN donde se dé apoyo).

Si se produce un error de polo, se devuelve -HUGE_VAL, -HUGE_VALF, o -HUGE_VALL.

[editar]Manejo de errores

Los errores se informan como se especifica en math_errhandling.

Se produce un error de dominio si arg es menor que cero.

Se puede producir un error de polo si arg es cero.

Si la implementación admite la aritmética de punto flotante IEEE (IEC 60559):

  • Si el argumento es +0 o -0, se devuelve -∞ y se genera FE_DIVBYZERO.
  • Si el argumento es 1, se devuelve +0.
  • Si el argumento es negativo, se devuelve NaN y se genera FE_INVALID.
  • Si el argumento es +∞, se devuelve +∞.
  • Si el argumento es NaN, se devuelve NaN.

[editar]Notas

Para el número entero arg, el logaritmo binario se puede interpretar como el índice basado en cero del bit 1 más significativo en la entrada.

[editar]Ejemplo

#include <iostream>#include <cmath>#include <cerrno>#include <cstring>#include <cfenv>// #pragma STDC FENV_ACCESS ONint main(){std::cout<<"log2(65536) = "<< std::log2(65536)<<'\n'<<"log2(0.125) = "<< std::log2(0.125)<<'\n'<<"log2(0x020f) = "<< std::log2(0x020f)<<" (el bit establecido más alto está en la posición 9)\n"<<"logaritmo base 5 de 125 = "<< std::log2(125)/std::log2(5)<<'\n';// valores especialesstd::cout<<"log2(1) = "<< std::log2(1)<<'\n'<<"log2(+Inf) = "<< std::log2(INFINITY)<<'\n';// manejo de erroreserrno=0;std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"log2(0) = "<< std::log2(0)<<'\n';if(errno==ERANGE)std::cout<<" errno == ERANGE: "<<std::strerror(errno)<<'\n';if(std::fetestexcept(FE_DIVBYZERO))std::cout<<" Se generó FE_DIVBYZERO\n";}

Posible salida:

log2(65536) = 16 log2(0.125) = -3 log2(0x020f) = 9.04166 (el bit establecido más alto está en la posición 9) logaritmo base 5 de 125 = 3 log2(1) = 0 log2(+Inf) = inf log2(0) = -inf errno == ERANGE: Resultado numérico fuera de rango Se generó FE_DIVBYZERO

[editar]Véase también

(C++11)(C++11)
Calcula el logaritmo natural (base e) (ln(x))
(función)[editar]
(C++11)(C++11)
Calcula el logaritmo común (base 10) (log10(x))
(función)[editar]
(C++11)(C++11)(C++11)
Logaritmo natural (a base e) de 1 más el número dado (ln(1+x))
(función)[editar]
(C++11)(C++11)(C++11)
Devuelve 2 elevado a la potencia dada (2x)
(función)[editar]
close