C ++ frexp () - C ++ standardbibliotek

Frexp () -funksjonen i C ++ bryter et flytende tall i sin binære betydning.

Den binære signifikansen er et flytende punkt hvis absolutte verdi (mantissa) ligger i intervallet (0,5, 1) og et heltalls eksponent for 2.

Funksjonen er definert i topptekstfilen.

Matematisk,

x = Binær betydning * 2 eksponent

hvor eksponent er lagret på stedet peket av exp og binær signifikant er verdien som returneres av frexp ().

frexp () prototype (fra og med C ++ 11 standard)

dobbel frexp (dobbel x, int * exp); float frexp (float x, int * exp); lang dobbel frexp (lang dobbel x, int * exp); dobbelt frexp (T x, int * exp); // For integrert type

Frexp () -funksjonen tar to argumenter og returnerer den binære verdien og verdien av typen double, floateller long double.

frexp () Parametere

  • x - Verdien som skal dekomponeres.
  • exp - Pekeren til et helt tall der verdien av eksponenten skal lagres.

frexp () Returverdi

Frexp () -funksjonen returnerer den binære signifikansen hvis absolutte verdi ligger i intervallet (0,5, 1). Hvis x er null, er både significand og eksponent null.

frexp () returnerer verdier
Parameter (x) Binær betydning Eksponent
0 0 0
x> = 1 Positivt Positivt
x <= -1 Negativ Positivt
-1 <x <0 Negativ Negativ
0 <x <1 Positivt Negativ

Eksempel 1: Hvordan fungerer frexp () -funksjonen 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 kjører programmet, vil utdataene være:

 6,81 = 0,85125 * 2 3 

Eksempel 2: frexp () -funksjon med integrert type

 #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 kjører programmet, vil utdataene være:

 25 = 0,78125 * 2 5 

Interessante artikler...