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

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

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

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

frexp, frexpf, frexpl – разложение числа с плавающей точкой на мантиссу и порядок.

Синтаксис:

#include < math.h >

double frexp (double x, int *p);
float frexpf (float x, int *p);
long double frexpl (long double x, int *p);

Аргументы:

x – число с плавающей точкой, которое необходимо разложить на мантиссу и экспоненту.

p – указатель на переменную, в которую будет помещен порядок числа x.

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

Мантисса числа x, если работа функции завершилась успешно.

nan, если аргумент x nan, при этом значение переменной указанной аргументом p будет неопределенно.

inf, если аргумент x , бесконечность, при этом значение переменной указанной аргументом p будет неопределенно.

-inf, если аргумент x, минус бесконечность, при этом значение переменной указанной аргументом p будет неопределенно.

Описание:

Функции frexp, frexpf, frexpl раскладывают число с плавающей точкой на мантиссу и экспоненту. При этом значение мантиссы лежит в пределе от 0.5 до 1, включая 0.5, или равно нулю. А экспонента это целое число удовлетворяющее выражению: x = m*2p, где x – число с плавающей точкой, m – мантисса, p - порядок.

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

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

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

Пример:

В примере раскладывается число 274619.370654 на мантиссу и порядок с помощью функции frexp, frexpf, frexpl и результат выводится на консоль.


#include < stdio.h >  //Для printf
#include < math.h >   //Для frexp, frexpf, frexpl

int main (void)
{    
   float m1=0;
   int p1 = 0;

   double m2=0;
   int p2=0; 

   long double m3=0;
   int p3=0;

   // Вывод числа разлагаемого на мантиссу и экспоненту
   printf (“Исходное число: 274619.370654\n”);

   //Разложение числа с помощью frexpf и вывод результата
   m1=frexpf (274619.370654,&p1);
   printf (“frexpf: мантисса %.10f, порядок %d\n”, m1, p1 );

   //Разложение числа с помощью frexp и вывод результата
   m2=frexp (274619.370654,&p2);
   printf (“frexp : мантисса %.10f, порядок %d\n”, m2, p2 );

   //Разложение числа с помощью frexpl и вывод результата
   m3=frexpl (274619.370654,&p3);
   printf (“frexpl: мантисса %.10Lf, порядок %d\n”, m3, p3 );

   return 0;
}

Результат:

Исходное число: 274619.370654
frexpf: мантисса 0.5237948895, порядок 19
frexp : мантисса 0.5237948812, порядок 19
frexpl: мантисса 0.5237948812, порядок 19



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

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


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

Рейтинг@Mail.ru