Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" L "

ldexp,ldexpf,ldexpl 

localtime 

localtime_r 

log,logf,logl 

logb,logbf,logbl 

log2,log2f,log2l 

log10,log10f,log10l 

log1p,log1pf,log1pl 

lround,lroundf,lroundl 

llround,llroundf,llroundl 

llrint,llrintf,llrintl 

lrint,lrintf,lrintl 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

ldexp, ldexpf, ldexpl – преобразуют число, заданное мантиссой и порядкой, в число с плавающей точкой.

Синтаксис:

#include < math.h >

double ldexp (double m, int p);
float ldexpf (float m, int p);
long double ldexpl (long double m, int p);

Аргументы:

m – мантисса.
p – порядок.

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

Значение выражения m*2p.

nan, если аргумент m nan.

inf, если аргумент m бесконечность, или результат слишком большой при этом генерируется ошибка «выход за пределы области допустимых значений (domain error).

-inf, если аргумент m минус бесконечность или результат преобразования слишком большой (по модулю) при этом генерируется ошибка «выход за пределы области допустимых значений (domain error).

Если результат слишком маленькое по абсолютной величине число и не может быть представлено в виде нормализованного числа, то будет возвращено ненормализованное число, если результат можно представить в виде ненормализованного числа или ноль. При этом генерируется ошибка «выход за пределы области допустимых значений (domain error).

Описание:

Функции ldexp, ldexpf, ldexpl вычисляют число по мантиссе и порядку, то есть рассчитывают результат выражения m*2p, где m – мантисса, p – порядок.

Функции ldexp, ldexpf, ldexpl отличаются друг от друга точностью аргумента m и возвращаемого значения. Так аргумент m и возвращаемое значение функции ldexp являются числами с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).

Аргумент m и возвращаемое значение функции ldexpf являются числами с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).

Аргумент m и возвращаемое значение функции ldexpl являются числами с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).

Пример:

В примере вычисляется число по мантиссе 0.635987 и порядку 27 с помощью функции ldexp, ldexpf, ldexpl и результат выводится на консоль


#include < stdio.h >  //Для printf
#include < math.h >   //Для ldexp, ldexpf, ldexpl

int main (void)
{    
   //Вывод мантиссы и порядка
   printf (“Мантисса: 0.635987, порядок: 27\n”);

   //Вычисление числа с помощью ldexpf и вывод результата
   printf (“ldexpf: %.10f\n”, ldexpf (0.635987,27) );

   //Вычисление числа с помощью ldexp и вывод результата
   printf (“ldexp: %.10f\n”, ldexp (0.635987, 27) );

   //Вычисление числа с помощью ldexpl и вывод результата
   printf (“ldexpl: %.10Lf\n”, ldexpl (0.635987,27) );

   return 0;
}

Результат:

Мантисса: 0.635987, порядок: 27
ldexpf: 85360728.0000000000
ldexp : 85360730.1775359958
ldexpl: 85360730.1775359958



Смотри так же:

logb, logbf, logbl
ilogb, ilogbf, ilogbl
ldexp, ldexpf, ldexpl
frexp, frexpf, frexpl
scalb, scalbf, scalbl
scalbn, scalbnf, scalbnl
scalbln, scalblnf, scalblnl


Яндекс.Метрика

Рейтинг@Mail.ru