C ++ frexp () - C ++ Standardbibliotek

Frexp () -funktionen i C ++ bryter ett flytpunktsnummer till dess binära betydelse.

Den binära signifikansen är en flytpunkt vars absoluta värde (mantissa) ligger i intervallet (0,5, 1) och ett heltalsexponent för 2.

Funktionen definieras i rubrikfilen.

Matematiskt,

x = Binär betydelse * 2 exponent

där, exponent lagras på den plats som exp, och den binära signifikansen är värdet som returneras av frexp ().

frexp () prototyp (Från och med C ++ 11-standarden)

dubbel frexp (dubbel x, int * exp); float frexp (float x, int * exp); lång dubbel frexp (lång dubbel x, int * exp); dubbel frexp (T x, int * exp); // För integrerad typ

Funktionen frexp () tar två argument och returnerar det binära signifikansvärdet för typen double, floateller long double.

frexp () Parametrar

  • x - Värdet som ska sönderdelas.
  • exp - Pekaren till ett heltal där exponentens värde ska lagras.

frexp () Returvärde

Funktionen frexp () returnerar den binära signifikansen vars absoluta värde ligger i intervallet (0,5, 1). Om x är noll är både signifikant och exponent noll.

frexp () returnerar värden
Parameter (x) Binär betydelse Exponent
0 0 0
x> = 1 Positiv Positiv
x <= -1 Negativ Positiv
-1 <x <0 Negativ Negativ
0 <x <1 Positiv Negativ

Exempel 1: Hur fungerar frexp () -funktionen i 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; ) 

När du kör programmet blir resultatet:

 6,81 = 0,85125 * 2 3 

Exempel 2: frexp () -funktion med integraltyp

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

När du kör programmet blir resultatet:

 25 = 0,78125 * 2 5 

Intressanta artiklar...