Поделиться через


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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Поддержка чисел с плавающей запятой

ldexp

modf, modff