frexp
Получает мантиссу и экспоненту числа с плавающей запятой.
double frexp(
double x,
int *expptr
);
float frexp(
float x,
int * expptr
); // C++ only
long double frexp(
long double x,
int * expptr
); // C++ only
Параметры
x
Значение с плавающей запятой.expptr
Указатель на сохраненный целочисленный показатель степени.
Возвращаемое значение
frexp возвращает мантиссу. Если x равно 0, функция возвращает 0 как для мантиссы, так и для экспоненты. Если параметр expptr имеет значение NULL, вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эта функция устанавливает errno в значение EINVAL и возвращает 0.
Заметки
Функция frexp разделяет значение с плавающей запятой (x) на мантиссу (m) и экспоненту (n), такие, чтобы абсолютное значение m было больше или равно 0.5 и меньше 1.0 и x = m*2n. Целочисленный показатель степени n хранится в расположении, указанном expptr.
C++ позволяет перегрузку, поэтому можно вызвать перегрузки frexp. В программе на языке C frexp всегда принимает целое число и значение double и возвращает значение double.
Требования
Функция |
Обязательный заголовок |
---|---|
frexp |
<math.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x, y;
int n;
x = 16.4;
y = frexp( x, &n );
printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.