Функция frexp

Прототип функции frexp:

     double frexp(      double val, int * exp );
      float frexp(       float val, int * exp );
long double frexp( long double val, int * exp );

Заголовочный файл

Название Язык
math.h С
cmath С++

Описание

Функция определяет следующие значения: показатель степени (экспонента) и мантиссу.

Значение с плавающей точкой val равно мантиссе (значение с плавающей точкой в диапазоне [0,5;1,0),  умноженной на основание двойки в степени exp:

x = significand * 2 exponent

Показатель степени (экспонента) хранится в месте, на которое указывает exp, а мантисса — значение, возвращаемое функцией. Если val равно нулю, обе части (мантисса и экспонента) равны нулю.

В Си, определён только один прототип, с типом данных double.

Параметры:

  • val
    Вещественное значение, для которого вычисляются мантисса и показатель степени двойки.
  • exp
    Указатель на объект типа int, где будет сохранен показатель степени.

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

Двоичная мантисса значения val. Это значение является значением с плавающей точкой в интервале [0.5,1), которое после умножается на 2-ку, возведенную в степень ехр, что, в результате, дает val.

Пример: исходный код программы

// пример использования функции frexp

#include <iostream>                               // для оператора cout
#include <cmath>                                  // для функции frexp

int main()
{
  double param = 8.0, result;
  int ex;                                         // степень

  result = frexp (param , &ex);                   // Двоичная мантисса значения val
  std::cout << result << "* 2^"
            << ex << " = " << param << std::endl;
  return 0;
}

Пример работы программы

CppStudio.com
0.5* 2^4 = 8
Автор: admin
Дата: 07.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.