ldexp
Умножает число с плавающей запятой на целую степень числа два.
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
Параметры
x
Значение с плавающей запятой.exp
Целый показатель степени.
Возвращаемое значение
Функция ldexp возвращает значение x * 2exp в случае успешного выполнения. При переполнении и в зависимости от знака числа x функция ldexp возвращает +/- HUGE_VAL; для errno задается значение ERANGE.
Дополнительные сведения о макросе errno и возможных возвращаемых значениях ошибок см. в разделе errno, _doserrno, _sys_errlist, and _sys_nerr.
Заметки
Поскольку C++ допускает перегрузку, можно вызывать перегрузки ldexp, которые принимают типы float или long double. В программе на языке C ldexp всегда принимает значения double и int и возвращает double.
Требования
Подпрограмма |
Заголовок C |
Заголовок C++ |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
Сведения о совместимости см. в разделе Совместимость.
Пример
// crt_ldexp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 4.0, y;
int p = 3;
y = ldexp( x, p );
printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}
Вывод
4.0 times two to the power of 3 is 32.0