C ++ frexp () - C ++ standardowa biblioteka

Funkcja frexp () w C ++ rozbija liczbę zmiennoprzecinkową na jej binarną wartość statystyczną.

Binarna różnica jest zmiennoprzecinkową, której wartość bezwzględna (mantysa) znajduje się w przedziale (0,5, 1), a wykładnik całkowity dla 2.

Funkcja jest zdefiniowana w pliku nagłówkowym.

Matematycznie,

x = binarna różnica * 2 wykładnik

gdzie wykładnik jest przechowywany w miejscu wskazywanym przez exp, a binarny symbol jest wartością zwracaną przez frexp ().

frexp () prototyp (w standardzie C ++ 11)

double frexp (double x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); double frexp (T x, int * exp); // Dla typu całkowitego

Funkcja frexp () przyjmuje dwa argumenty i zwraca wartość logiczną mantysy typu double, floatlub long double.

frexp () Parametry

  • x - wartość do rozłożenia.
  • exp - wskaźnik do liczby całkowitej, w której ma być przechowywana wartość wykładnika.

frexp () Wartość zwracana

Funkcja frexp () zwraca wartość binarną, której wartość bezwzględna mieści się w przedziale (0,5, 1). Jeśli x jest równe zero, zarówno istotna, jak i wykładnik są równe zero.

frexp () zwracają wartości
Parametr (x) Znaczenie binarne Wykładnik potęgowy
0 0 0
x> = 1 Pozytywny Pozytywny
x <= -1 Negatywny Pozytywny
-1 <x <0 Negatywny Negatywny
0 <x <1 Pozytywny Negatywny

Przykład 1: Jak funkcja frexp () działa w 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; ) 

Po uruchomieniu programu wynik będzie następujący:

 6,81 = 0,85125 * 2 3 

Przykład 2: funkcja frexp () z typem całkowitym

 #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; ) 

Po uruchomieniu programu wynik będzie następujący:

 25 = 0,78125 * 2 5 

Interesujące artykuły...