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

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

" S "

scalb,scalbf,scalbl 

scalbln,scalblnf,scalblnl 

scalbn,scalbnf,scalbnl 

setbuf 

setvbuf 

signbit 

sin,sinf,sinl 

sincos,sincosf,sincosl 

sinh,sinhf,sinhl 

sleep 

sqrt,sqrtf,sqrtl 

strcasestr 

strcat 

strchr 

strchrnul 

strcmp 

strcpy 

strcspn 

strdup 

strerror 

strftime 

strlen 

strncat 

strndup 

strncmp 

strncpy 

strpbrk 

strrchr 

strspn 

strstr 

strtod 

strtok 

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

scalbn, scalbnf, scalbnl – вычисление числа по мантиссе и порядку.

Синтаксис:

#include < math.h >

double scalbn (double m, int p);
float scalbnf (float m, int p);
long double scalbnl (long double m, int p);

Аргументы:

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

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

Значение выражения m*rp, где r – основание, значение которого определяется константой FLT_RADIX описанной в библиотеке float.h.

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

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

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

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

Описание:

Функции scalbn, scalbnf, scalbnl вычисляют число по мантиссе и порядку, то есть рассчитывают результат выражения m*rp, где m – мантисса, p – порядок, r – основание. Значение основание определяется константой FLT_RADIX определенной в библиотеке float.h.

От функций scalb, scalbf, scalbl и функций scalbln, scalblnf, scalblnl отличаются типом аргумента p.

От функций ldexp, ldexpf, ldexpl отличаютс основанием. Так в функциях ldexp, ldexpf, ldexpl для расчета числа используется фиксированное основание равное двойки, а в функциях scalbn, scalbnf, scalbnl значение основание определяется константой FLT_RADIX определенной в библиотеке float.h.

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

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

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

Пример:

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


#include < stdio.h >  //Для printf
#include < math.h >   //Для scalbn, scalbnf, scalbnl

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

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

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

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

   return 0;
}

Результат:

Мантисса: 0.635987, порядок: 27
scalbnf: 85360728.0000000000
scalbn : 85360730.1775359958
scalbnl: 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