ldexp(), ldexpf(), ldexpl()

Умножить число с плавающей точкой на целую степень 2

Прототип:

#include <math.h>
double ldexp( double x,
int exp );
float ldexp( float x,
int exp );
long double ldexpl( long double x,
int exp );

Аргументы:

x
Число с плавающей точкой.
exp
Степень 2 для умножения на x.

Библиотека:

libm

Описание:

Данные функции умножают число с плавающей точкой x на 2^e.

Возможна ошибка выхода за границы диапазона.

Возвращаемое значение:

x × 2^e

Для корректного значения, которое может вызвать ошибку underflow, эти функции возвращают 0.0.


Note: В случае возникновения ошибки, эти функции возвращают 0, который также может быть и достоверным математическим результатом. Если вам необходимо проверить, возникла ли ошибка, установите errno в 0, вызовите функцию, и затем снова проверьте errno. Эти функции не изменяют errno в случае отсутствия ошибок.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main( void )
{
double value;
value = ldexp( 4.7072345, 5 );
printf( "%f\n", value );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out 150.631504

Классификация:

ANSI, POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

frexp(), modf()




Предыдущий раздел: Описание API математической библиотеки