C ++ frexp () - Стандартная библиотека C ++

Функция frexp () в C ++ разбивает число с плавающей запятой на его двоичное значение.

Двоичная мантисса - это плавающая запятая, абсолютное значение которой (мантисса) находится в интервале (0,5, 1) и целочисленная экспонента для 2.

Функция определена в заголовочном файле.

Математически,

x = двоичная значащая * 2 экспонента

где экспонента хранится в месте, указанном exp, а двоичная мантисса - это значение, возвращаемое frexp ().

прототип frexp () (согласно стандарту C ++ 11)

double frexp (двойной x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); двойной frexp (T x, int * exp); // Для целочисленного типа

Функция frexp () принимает два аргумента и возвращает двоичное значение типа double, floatили long double.

frexp () Параметры

  • x - значение, которое нужно разложить.
  • exp - указатель на целое число, в котором должно храниться значение экспоненты.

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

Функция frexp () возвращает двоичное значение, абсолютное значение которого лежит в интервале (0,5, 1). Если x равен нулю, оба значения и экспонента равны нулю.

frexp () возвращаемые значения
Параметр (x) Двоичное значение Экспонента
0 0 0
х> = 1 Положительный Положительный
х <= -1 Отрицательный Положительный
-1 <х <0 Отрицательный Отрицательный
0 <х <1 Положительный Отрицательный

Пример 1. Как работает функция frexp () в C ++?

 #include #include using namespace std; int main () ( double x = 6.81, significand; int *exp; significand = frexp(x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Когда вы запустите программу, вывод будет:

 6,81 = 0,85125 * 2 3 

Пример 2: функция frexp () с целочисленным типом

 #include #include using namespace std; int main () ( double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Когда вы запустите программу, вывод будет:

 25 = 0,78125 * 2 5 

Интересные статьи...