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

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

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

Функцията е дефинирана в заглавния файл.

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

х = Binary significand * 2 експонента

където експонентата се съхранява в местоположението, посочено от exp, а двоичното значение е стойността, върната от frexp ().

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

двоен frexp (двоен x, int * exp); float frexp (float x, int * exp); дълъг двоен frexp (дълъг двоен 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
x> = 1 Положителен Положителен
x <= -1 Отрицателни Положителен
-1 <x <0 Отрицателни Отрицателни
0 <x <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 

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